我有一张包含20,000行数据的表格,但我忘记在其上放置主键,以便每行都有一个唯一键。如何更新表以添加主键并使用递增的ID更新所有现有行?
我希望第一行从ID 1开始一直增加到最后一行并在ID 20000处结束。如何使用单个查询更新所有行?
我正在使用MySQL。已尝试使用PhpMyAdmin,但它不会这样做。
我有一张包含20,000行数据的表格,但我忘记在其上放置主键,以便每行都有一个唯一键。如何更新表以添加主键并使用递增的ID更新所有现有行?
我希望第一行从ID 1开始一直增加到最后一行并在ID 20000处结束。如何使用单个查询更新所有行?
我正在使用MySQL。已尝试使用PhpMyAdmin,但它不会这样做。
添加新的ID柱后(不设置作为主键只是还没有,并且不上自动递增转)运行:
SET @index = 1;
UPDATE tablename SET ID = (@index:[email protected]+1);
这将设置从1开始到一个递增ID值每个现有的行都可以解决您在输入数据后尝试插入新的主键列时会遇到的重复键问题。
完成此操作后,您可以将ID列设置为具有自动增量的主键。
更改tablename
并运行以下SQL语句。它将创建一个名为id的新主键并将其填充,从第一行开始填充为1.
ALTER TABLE `tablename` ADD COLUMN id INT(10) AUTO_INCREMENT NOT NULL FIRST, ADD PRIMARY KEY (id);
实际工作的好男人,谢谢! – zuallauz
太棒了,谢谢! – zuallauz
令人惊叹!拯救了我的一天! – n0nag0n
呃。我现在需要这个for Oracle。任何提示呢? – towi