Kopiowanie rekordu w MySQL

Aby skopiować rekord w MySQL należy wydać polecenie:

INSERT INTO tabela SELECT * FROM tabela WHERE id=1

Powyższe polecenie utworzy dokładną kopię rekordu. W takim przypadku prawdopodobnie wskazane będzie ręczne wyedytowanie co najmniej pola id. Gwiazdkę z selecta można zastąpić nazwami kolumn, wtedy id (zależy od konstrukcji bazy) powinno zostać wygenerowane automatycznie.

Czasami zachodzi potrzeba skopiowania rekordu ale bez jego duplikowania. Czyli musiamy sprawdzić, czy w bazie MySQL taki rekord już istnieje. Robimy to tak:

$copy=”INSERT INTO tabela (login, znacznik, kol1, kol2, kol3) SELECT ‘” . $username . “‘, znacznik, kol1, kol2, kol3 FROM tabela WHERE login = ‘admin’ AND znacznik NOT IN (SELECT znacznik FROM tabela WHERE login = ‘” . $username . “‘)”;

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.