使用现有数据向表中添加auto_increment值

时间:2014-01-22 23:51:11

标签: sql phpmyadmin

我在phpmyadmin上有一个大约有400行的表。我添加了一个id列,它是主键,是一个自动增量。如何使用sql更新表并为id列中的每一行添加值? 我试图用

之类的东西来做
WHILE (SELECT COUNT(*) FROM cong WHERE 'ID' IS NULL) > 0
BEGIN
    SET ROWCOUNT 1
    UPDATE cong SET 'ID' = MAX('ID')+1
END

但是又出现了错误:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHILE (SELECT COUNT(*) FROM cong WHERE 'ID' IS NULL) > 0 BEGIN SET ROWCOUN' at line 1

如何在每行中添加自动增量编号?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你最初没有id列,插入~400行,然后决定你需要一个id并添加列,将其设置为主键和auto_increment。现在,您想返回并为之前没有ID的~400行中的每一行添加值。

当您添加主键和auto_increment时,它应该为您创建了这些auto_increment值。我刚刚用几行数据(一个varchar列)进行了测试,然后通过phpMyAdmin(因为你用phpmyadmin标记你的帖子)我添加了一个类型为INT的新列id,检查A_I(auto_increment)复选框并选择PRIMARY为钥匙。浏览数据显示我现有的每行都有一个ID。

您是说您的列是设置了auto_increment且字段为空的主键? MySQL允许这样做是没有意义的。如果这是真的,你可以张贴你的桌面结构吗?