为mysql表设置自动增量初始值

时间:2011-09-26 15:58:19

标签: mysql

我正在尝试使用PHP在我的SQL中创建一个表,但我不确定如何为自动增量字段设置初始值。

这是我到目前为止所做的:

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);

}

所以我需要知道如何在创建时在此表上设置初始自动增量值?

由于

2 个答案:

答案 0 :(得分:20)

如果表中还没有自动增量列:

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

然后设置自动增量起始值:

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

this post可能重复。

答案 1 :(得分:4)

假设您的自动增量列是第一个:

 $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";

起始值将是231。

我将列类型更改为INT,因为您无法使用VARCHAR进行自动增量。

(并删除此行上的or die(mysql_error())顺便说一下,它没有意义,因为它只是一个变量创建,而不是正在执行的SQL查询)