Loading lessons...
INSERT INTO SELECT
INSERT INTO SELECT
INSERT INTO SELECT copies rows from one table into another.
Copy all columns
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country
FROM Suppliers;
Copy with a WHERE
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country
FROM Suppliers
WHERE Country = 'Germany';
The rules
- The number of columns in both lists must match.
- The data types should be compatible.
- The source and target tables can be the same database or different ones.
Example: copy with an expression
INSERT INTO newProducts (Name, DoublePrice)
SELECT ProductName, Price * 2
FROM Products;
TL;DR
- INSERT INTO SELECT copies rows between tables.
- Column counts must match.
- Add WHERE to copy a subset.
- Works across databases when both exist.