[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
INSERT ... SELECT
Syntax
INSERT [LOW_PRIORITY] [IGNORE] [INTO] tbl_name [(column list)] SELECT ... |
With INSERT ... SELECT
, you can quickly insert many rows
into a table from one or many tables.
INSERT INTO tblTemp2 (fldID) SELECT tblTemp1.fldOrder_ID FROM tblTemp1 WHERE tblTemp1.fldOrder_ID > 100; |
The following conditions hold for an INSERT ... SELECT
statement:
INSERT ... SELECT
implicitly operates in
IGNORE
mode. As of MySQL 4.0.1, you should specify IGNORE
explicitly to ignore records that would cause duplicate-key violations.
DELAYED
with INSERT ... SELECT
.
INSERT
statement cannot appear in the
FROM
clause of the SELECT
part of the query.
This limitation is lifted in 4.0.14.
AUTO_INCREMENT
columns work as usual.
mysql_info()
to get information about
the query. See section 13.1.4 INSERT
Syntax.
INSERT ... SELECT
.
You can use REPLACE
instead of INSERT
to overwrite old rows.
REPLACE
is the counterpart to INSERT IGNORE
in the treatment
of new rows that contain unique key values that duplicate old rows:
The new rows are used to replace the old rows rather than being discarded.