MYSQL в phpmyadmin uniqueid primarykey дубликаты идентификаторов - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть несколько таблиц, которые не имеют ни индексов, ни первичного ключа после миграции.В некоторых таблицах 9149 записей, и около 10 новых записей получили идентификатор = 0.
Я не могу дать первичный ключ из-за нескольких записей с одинаковым идентификатором, и я не могу редактировать с помощью щелчка, потому что первичный ключ отсутствует,Я не знаю что делать

Максимальный существующий номер идентификатора поста - 9149.
Может кто-нибудь дать мне переписать их с последовательными номерами от 9150 и выше.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Здесь я использую переменную для хранения максимального идентификатора, а затем использую эту переменную для обновления строк с id = 0

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

UPDATE test SET id = 
  (SELECT @rownum  := (@rownum + 1))
WHERE id = 0
0 голосов
/ 19 февраля 2019

Это должно быть просто:

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

Эта команда добавляет столбец с именем id в качестве первого столбца в таблице и делает его первичным ключом.Так как в столбце включена опция автоинкремента, MySQL автоматически назначит номер каждой записи.

Вот демо на 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  |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...