Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es möglich, einen Datensatz mit einer einzigen SQL-Anweisung von einer Tabelle in eine andere zu verschieben?

Nein, Sie können Datensätze nicht in einer SQL-Anweisung verschieben. Sie müssen ein INSERT verwenden gefolgt von einem DELETE Erklärung. Sie sollten diese Anweisungen in eine Transaktion packen , um sicherzustellen, dass der Kopiervorgang atomar bleibt.

START TRANSACTION;

INSERT INTO 
    new_table 
SELECT 
    *
FROM
    old_table
WHERE
    some_field = 'your_criteria';

DELETE FROM old_table WHERE some_field = 'your_criteria';

COMMIT;