zua*_*auz 4 mysql sql database indexing auto-increment
我有一个包含20,000行数据的表,但是我忘了在其上放一个主键,以便每行都有一个唯一的键.
我希望第一行从ID 1开始并一直递增到最后一行并在ID 20000处完成.如何使用单个查询更新所有行?
我正在使用MySQL.尝试过使用PhpMyAdmin,但它不会这样做.
添加新ID列后(暂时不设置为主键,并且不启用自动增量)运行:
SET @index = 1;
UPDATE tablename SET ID = (@index:=@index+1);
Run Code Online (Sandbox Code Playgroud)
这将设置从1开始到每个现有行的递增ID值,从而解决了在您输入数据后尝试插入新的主键列时将遇到的重复键问题.
完成此操作后,您可以将ID列设置为具有自动增量的主键.