2011-09-26 15 views
7

Estoy intentando crear una tabla en mi sql utilizando PHP, pero no estoy seguro de cómo establecer un valor inicial para el campo de incremento automático.establecer el valor inicial de incremento automático para la tabla mysql

Esto es lo que tengo hasta ahora:

function create_table($db_host,$db_user,$db_pswrd,$db_name){ 

$connect = mysql_connect($db_host,$db_user,$db_pswrd) or die(mysql_error()); 

mysql_select_db($db_name, $connect); 
$sql = "CREATE TABLE MY_TABLE 
(
table_id int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(table_id), 
table_1 varchar(45), 
table_2 varchar(45), 
table_3 varchar(999), 
table_4 varchar(45) 
)"or die(mysql_error()); 

mysql_query($sql,$connect)or die(mysql_error()); 

mysql_close($connect); 

} 

por eso es necesario saber cómo establecer el valor inicial de incremento automático en esta mesa, sobre la creación?

Gracias

+0

Esta es una pregunta relacionada con SQL, no PHP. –

+0

¿Qué columna se incrementa automáticamente? –

+0

Necesito saber cómo hacerlo, en PHP ....... –

Respuesta

20

Si usted no tiene la columna de incremento automático en la tabla todavía:

$sql = "ALTER TABLE MY_TABLE ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    ADD INDEX (id);"; 

a continuación, para establecer el incremento automático valor de inicio:

$sql = "ALTER TABLE MY_TABLE AUTO_INCREMENT = 111111;"; 

Posible duplicado de this post.

+1

He leído aquí (http://tycoontalk.freelancer.com/php-forum/32507-reset-auto-increment-in-mysql.html) que el valor del auto-incriment puede ser tan bajo como desee y mysql encontrará el siguiente ID disponible (es decir, no fallará si configura el autoinculpación más bajo que el ID más grande) –

+0

El establecimiento del valor de auto_increment falla si existe un valor 'id' mayor que el valor solicitado. – Sebastian

4

Asumiendo que su columna de incremento automático es la primera de ellas:

$sql = "CREATE TABLE MY_TABLE 
(
table_1 INT AUTO_INCREMENT, 
table_2 varchar(45), 
table_3 varchar(999), 
table_4 varchar(45) 
) AUTO_INCREMENT = 231"; 

El valor de partida será, aquí, 231.

he cambiado el tipo de columna a INT, porque no se puede usar un VARCHAR para autoincrementar.

(y eliminar la or die(mysql_error()) en esta línea por cierto, su sentido, porque es sólo una creación variables, no una consulta SQL en ejecución)

+1

El código sugerido arroja un error: tiene un error en la sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de '= 231)' en la línea 10 –

+0

Corregido el código. También puedes usar la documentación de mysql. –

+0

Su código corregido todavía produce un error, no puede aumentar automáticamente en una tecla que no sea. –

Cuestiones relacionadas