我在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
如何实现将自动递增编号添加到每一行?
如果我理解正确,您最初没有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不允许这样做是没有意义的。如果是这样,您可以发布表格结构吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句