Selecting inserted values
You can retrieve the values for rows that are being inserted by specifying the INSERT statement in the FROM clause of a SELECT statement.
When you insert one or more rows into a table, you can select the result rows of the insert operation. These rows include any of the following values:
- The value of any generated column, such as identity, ROWID, or row change timestamp columns
- Any default values used for columns
- All values for all rows inserted by a multiple-row insert operation
- Values that were changed by a before insert trigger
The following example uses a table defined as follows:
CREATE TABLE EMPSAMP
(EMPNO INTEGER GENERATED ALWAYS AS IDENTITY,
NAME CHAR(30),
SALARY DECIMAL(10,2),
DEPTNO SMALLINT,
LEVEL CHAR(30),
HIRETYPE VARCHAR(30) NOT NULL DEFAULT 'New Employee',
HIREDATE DATE NOT NULL WITH DEFAULT);
To insert a row for a new employee and see the values that were used for EMPNO, HIRETYPE, and HIREDATE, use the following statement:
SELECT EMPNO, HIRETYPE, HIREDATE
FROM FINAL TABLE ( INSERT INTO EMPSAMP (NAME, SALARY, DEPTNO, LEVEL)
VALUES('Mary Smith', 35000.00, 11, 'Associate'));The returned values are the generated value for EMPNO, 'New Employee' for HIRETYPE, and the current date for HIREDATE.