我在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
如何在每行中添加自动增量编号?
答案 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允许这样做是没有意义的。如果这是真的,你可以张贴你的桌面结构吗?