我正在尝试通过PHP将MySQL中的字段编辑为NOT NULL和AUTO_INCREMENT。我已经尝试了以下路线来做到这一点,但我一直在收到错误。知道为什么吗?
$con = mysql_connect("host", "user", "pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database_name", $con);
$int = "ALTER TABLE `table_name` CHANGE `column_name` `column_name` INT(11) NOT NULL AUTO_INCREMENT";
if (!mysql_query($int,$con))
{
die('Heres Your Error: ' . mysql_error());
}
mysql_close($con)
这是错误消息:
表定义不正确;只能有一个自动列,必须将其定义为键
答案 0 :(得分:3)
在这种情况下,MySQL的问题是“鸡与鸡蛋”的情况。
如果表中已有AUTO_INCREMENT列,则错误消息的前半部分适用于只有一列可以是AUTO_INCREMENT。
使用AUTO_INCREMENT创建表必须与定义PRIMARY KEY一起完成。
如果表没有AUTO_INCREMENT列,则错误消息的后半部分适用于创建AUTO_INCREMENT必须与PRIMARY KEY一起完成。
试试这个:
ALTER TABLE `table_name` CHANGE `column_name` `column_name` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY;
答案 1 :(得分:0)