【问题标题】: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  |
      

      【讨论】:

        猜你喜欢
        • 2011-09-16
        • 2012-06-23
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-04-15
        • 2012-08-06
        • 1970-01-01
        相关资源
        最近更新 更多