【问题标题】:MYSQL in phpmyadmin uniqueid primarykey duplicate id numbersphpmyadmin中的MYSQL唯一id主键重复id号
【发布时间】:2019-07-13 08:33:50
【问题描述】:
我有多个表在迁移后既没有索引也没有主键。
一些表中有 9149 个条目,大约有 10 个新条目的 id = 0。
由于多个条目具有相同的 id,我无法提供主键,并且由于没有主键,我无法通过单击进行编辑。我不知道该怎么办。
现有的最高帖子 ID 编号为 9149。
有人可以给我用从 9150 向上的序列号重写这些。
【问题讨论】:
标签:
mysql
sql
primary-key
unique-values
multiple-entries
【解决方案1】:
这里我使用一个变量来保存最大 id,然后使用该变量更新 id = 0 的行
SET @rownum = (SELECT MAX(id) FROM test)
UPDATE test SET id =
(SELECT @rownum := (@rownum + 1))
WHERE id = 0
【解决方案2】:
这应该很简单:
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 |