phpmyadmin uniqueid主键中的MYSQL重复ID号

时间:2019-02-19 18:46:55

标签: mysql sql primary-key unique-values multiple-entries

我有多个表,这些表在迁移后没有索引或主键。 在某些表中有9149个条目,并且已将大约10个新条目的ID设为0。
由于具有相同ID的多个条目,我无法提供主键,并且由于没有主键,我无法通过单击进行编辑。我不知道该怎么办。

现有的最高职位ID号是9149。
有人可以给我重写从9150以上的顺序号吗?

2 个答案:

答案 0 :(得分:0)

这应该很简单:

ALTER TABLE wp_posts ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

此命令将名为id的列作为表的第一列添加,并使其成为主键。由于该列启用了自动递增选项,因此MySQL将自动为每个记录分配一个数字。

这是一个 demo on DB Fiddle ,它演示了原理:

create table mytable (val int);

insert into mytable values(50);
insert into mytable values(50);
insert into mytable values(51);

alter table mytable add id int not null auto_increment primary key first;

select * from mytable;

| id  | val |
| --- | --- |
| 1   | 50  |
| 2   | 50  |
| 3   | 51  |

答案 1 :(得分:0)

在这里,我使用一个变量来保存最大id,然后使用该变量来更新id = 0的行

SET @rownum = (SELECT MAX(id) FROM test)

UPDATE test SET id = 
  (SELECT @rownum  := (@rownum + 1))
WHERE id = 0