sql >> Databáze >  >> RDS >> Mysql

Mohu v MySQL zkopírovat jeden řádek pro vložení do stejné tabulky?

Použil jsem techniku ​​Leonarda Challise s několika změnami:

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;

Jako dočasná tabulka by nikdy nemělo existovat více než jeden záznam, takže se nemusíte starat o primární klíč. Nastavení na hodnotu null umožňuje MySQL vybrat si hodnotu samotnou, takže nehrozí vytvoření duplikátu.

Pokud chcete mít super jistotu, že vkládáte pouze jeden řádek, můžete na konec řádku INSERT INTO přidat LIMIT 1.

Všimněte si, že jsem také přidal hodnotu primárního klíče (v tomto případě 1) k názvu mé dočasné tabulky.



  1. Jak najít běžící port SQL Serveru?

  2. Webinář Plan Explorer 3.0 – ukázky a otázky a odpovědi

  3. Jak zkontrolovat, zda soubor používá obrázek PL/SQL?

  4. SQLite - Nějaký rozdíl mezi omezením tabulky UNIQUE a omezením sloupce UNIQUE?