INSERT INTO ... SELECT ... FROM
Derby Reference Manual
61
If the Query is a VALUES expression, it cannot contain or be followed by an ORDER BY,
result offset, or fetch first clause. However, if the VALUES expression does not contain
the DEFAULT keyword, the VALUES clause can be put in a subquery and ordered, as in
the following statement:
INSERT INTO t SELECT * FROM (VALUES 'a','c','b') t ORDER BY 1;
For more information about Query, see
.
Examples
INSERT INTO COUNTRIES
VALUES ('Taiwan', 'TW', 'Asia')
-- Insert a new department into the DEPARTMENT table,
-- but do not assign a manager to the new department
INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT)
VALUES ('E31', 'ARCHITECTURE', 'E01')
-- Insert two new departments using one statement
-- into the DEPARTMENT table as in the previous example,
-- but do not assign a manager to the new department.
INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT)
VALUES ('B11', 'PURCHASING', 'B01'),
('E41', 'DATABASE ADMINISTRATION', 'E01')
-- Create a temporary table MA_EMP_ACT with the
-- same columns as the EMP_ACT table.
-- Load MA_EMP_ACT with the rows from the EMP_ACT
-- table with a project number (PROJNO)
-- starting with the letters 'MA'.
CREATE TABLE MA_EMP_ACT
(
EMPNO CHAR(6) NOT NULL,
PROJNO CHAR(6) NOT NULL,
ACTNO SMALLINT NOT NULL,
EMPTIME DEC(5,2),
EMSTDATE DATE,
EMENDATE DATE
);
INSERT INTO MA_EMP_ACT
SELECT * FROM EMP_ACT
WHERE SUBSTR(PROJNO, 1, 2) = 'MA';
-- Insert the DEFAULT value for the LOCATION column
INSERT INTO DEPARTMENT
VALUES ('E31', 'ARCHITECTURE', '00390', 'E01', DEFAULT)
-- Create an AIRPORTS table and insert into it
-- some of the fields from the CITIES table, with the airport
-- codes sorted alphabetically
CREATE TABLE AIRPORTS (
AIRPORT_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY
PRIMARY KEY,
AIRPORT VARCHAR(3),
CITY VARCHAR(24) NOT NULL,
COUNTRY VARCHAR(26) NOT NULL
);
INSERT INTO AIRPORTS (AIRPORT, CITY, COUNTRY)
SELECT AIRPORT, CITY_NAME, COUNTRY FROM CITIES
ORDER BY AIRPORT;
Statement dependency system
The INSERT statement depends on the table being inserted into, all of the conglomerates
(units of storage such as heaps or indexes) for that table, and any other table named in
the statement. Any statement that creates or drops an index or a constraint for the target
table of a prepared INSERT statement invalidates the prepared INSERT statement.