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

В MySQL мога ли да копирам един ред за вмъкване в същата таблица?

Използвах техниката на Леонард Чалис с няколко промени:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

Като временна таблица никога не трябва да има повече от един запис, така че не е нужно да се притеснявате за първичния ключ. Задаването му на null позволява на MySQL да избере самата стойност, така че няма риск от създаване на дубликат.

Ако искате да сте супер сигурни, че получавате само един ред за вмъкване, можете да добавите LIMIT 1 към края на реда INSERT INTO.

Имайте предвид, че също добавих стойността на първичния ключ (1 в този случай) към името на моята временна таблица.



  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 без заключване на таблицата

  2. Миграция на Laravel:уникалният ключ е твърде дълъг, дори ако е посочен

  3. PHP - Защитени страници само за членове със система за вход

  4. Върнете деня, месеца и годината в MySQL

  5. Как да получите следващия идентификатор за автоматично увеличение в mysql