Records kopiëren (MySQL)
Versie door Jeroen Strompf (overleg | bijdragen) op 2 okt 2015 om 11:18
Met kopiëren van records wordt bedoeld: Van de ene tabel naar de andere, of binnen een tabel. Vaak is het handig om te kopiëren mbv. een tijdelijke tabel.
Simpel voorbeeld
-- Maak een tijdelijke tabel, en vul die met een subset van een andere tabel -- CREATE TEMPORARY TABLE tbl_tmp SELECT * FROM tbl_invoices WHERE id = 99; -- -- Pas de tijdelijke tabel aan -- UPDATE tbl_tmp SET id=100 WHERE id = 99; -- -- Voeg de tijdelijke tabel in, in de brontabel -- INSERT INTO tbl_invoices SELECT * FROM tbl_tmp WHERE id = 100; -- -- Tijdelijke tabel opdoeken -- DROP TABLE tbl_tmp;
Inclusief zelf-referentie
Je kunt niet refereren naar dezelfde tabel als welke je update. Wellicht vanwege locking?
Voorbeeld hoe dat wel te doen:
set @teller=(select max(tid) from term_data)+1; insert into term_data (tid, vid, name, description, weight) values ( @teller, 15, "Merk","Zoek op merk en apparaat", 0 );
Auto-increment primary key
Indien de doeltabel een auto-incrementele primaire sleutel bevat: Dat veld leeg laten of NULL-waarde toekennen.