MySQL INSERT INTO SELECT- instructie
De MySQL INSERT INTO SELECT-instructie
De INSERT INTO SELECT
instructie kopieert gegevens uit de ene tabel en voegt deze in een andere tabel in.
De INSERT INTO SELECT
instructie vereist dat de gegevenstypen in bron- en doeltabellen overeenkomen.
Opmerking: De bestaande records in de doeltabel worden niet beïnvloed.
INSERT INTO SELECT Syntaxis
Kopieer alle kolommen van de ene tabel naar de andere tabel:
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
Kopieer slechts enkele kolommen van de ene tabel naar een andere tabel:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
Demodatabase
In deze tutorial gebruiken we de bekende Northwind-voorbeelddatabase.
Hieronder vindt u een selectie uit de tabel "Klanten":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
En een greep uit de tabel "Leveranciers":
SupplierID | SupplierName | ContactName | Address | City | Postal Code | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | Londona | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
MySQL INSERT INTO SELECT Voorbeelden
De volgende SQL-instructie kopieert "Leveranciers" naar "Klanten" (de kolommen die niet met gegevens zijn gevuld, bevatten NULL):
Voorbeeld
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
De volgende SQL-instructie kopieert "Leveranciers" naar "Klanten" (vul alle kolommen in):
Voorbeeld
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode,
Country)
SELECT SupplierName, ContactName, Address, City, PostalCode,
Country FROM Suppliers;
De volgende SQL-instructie kopieert alleen de Duitse leveranciers naar "Klanten":
Voorbeeld
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';