Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL коригира пропуските в автоматично нарастване в две таблици

ALTER TABLE table2
ADD FOREIGN KEY FK_IMAGE (id_image)
REFERENCES table1 (id_image)
ON DELETE CASCADE
ON UPDATE CASCADE;

SET @currentRow = 0;

UPDATE table1 INNER JOIN (
    SELECT @currentRow := @currentRow + 1 AS id_image_new, id_image AS id_image_old
    FROM table1
    ORDER BY id_image ASC) t on t.id_image_old = table1.id_image
SET table1.id_image = t.id_image_new;

ALTER TABLE table1 AUTO_INCREMENT = 1;

FK автоматично ще актуализира съответно идентификаторите на вашата 2-ра таблица.

Изобщо не съм сигурен, но в някои по-стари версии на mysql, актуализирането на таблица, която препращате в подзаявка на актуализацията, може да се срине. Ако е така, просто създайте 2-ра таблица и я попълнете (вмъква), след това изтрийте старата и преименувайте новата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирате MySql:размерът на индексната колона е твърде голям (Laravel мигриране)

  2. Mysql Увеличаваща променлива производителност

  3. Лоши знаци при отпечатване на текст от utf8_unicode_ci Mysql таблица

  4. MySQL Update Inner Join таблици заявка

  5. извикайте php скрипт за всеки ред в моята база данни mysql