All Statements
STATEMENT: INSERT INTO
Single-record:
INSERT INTO target [(field1[, field2[, ...]])] VALUES (value1[, value2 [, ...])
Multiple-record:
INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
SELECT [source.] field1[, field2[, ...] FROM
tableexpression
To add a specific record to a table, the
INSERT INTO
statement is followed by the name of the table and the names of the various fields. If you don't specify each field, a default value or
NULL
will be inserted for missing columns. Each value in the
VALUES
clause is inserted into the field that corresponds to the value's position in the list: the first value is inserted into field 1, the second into field 2 etc.
INSERT INTO Musicians ( Name, Instrument )
VALUES ('Bobby Lee', 'fiddle');
Note that if you omit the field list, you must include a value for every field in the table, otherwise the operation will fail. The values must also be seperated by commas, and text fields enclosed in single quotation marks (' ').
When using the multiple-record syntax the
INSERT INTO
statement precedes a
SELECT
statement and adds a single or multiple records to a table. This is referred to as an append query, as it copies records from one or more tables to another. The tables that contain the records being appended are not affected by the operation:
INSERT INTO Duos ( Member1 )
SELECT Name FROM Musicians;
An AutoNumber field (also refered to as a Counter field) is a data type that automatically creates and stores a number for each item added to a table. If you append records to a table with an AutoNumber field and you do not want the AutoNumbered field to be renumbered, you must include the AutoNumber field number in the query. If you do not include the AutoNumber field, the appended items will be assigned a new AutoNumber field value.
If the destination table contains a
PRIMARY KEY
, you can only append unique non-
NULL
values to the
PRIMARY KEY
field.
The following example would append to the Dous table, only those records that had a unique primary key:
INSERT INTO Duos ( Member1 )
SELECT Name FROM Musicians
WHERE MusicianID > 3;
You can also append records to a table in another database using the IN clause:
INSERT INTO Residents (Name, Occupation) IN Residents.mdb
SELECT Name, Occupation FROM Immigration
WHERE Residency = 'granted';
As with a straight-forward
SELECT
statement, the
FROM
clause may include more than one table linked by a
JOIN
operation. This is illustrated in the following example which appends to the 'Insurance' table the names of all those employees involved in the 'Hardwork' project:
INSERT INTO Insurance (Name)
SELECT Employee.Username FROM Employee INNER JOIN Project
ON Employee.EmployeeID = Project.EmployeeID
WHERE Project.ProjectName = 'Hardwork';
Copyright 1999-2001 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information