DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) insert-select

Info Catalog (mysql.info) insert (mysql.info) insert (mysql.info) insert-delayed
 
 13.2.4.1 `INSERT ... SELECT' Syntax
 ...................................
 
      INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
          [INTO] TBL_NAME [(COL_NAME,...)]
          SELECT ...
          [ ON DUPLICATE KEY UPDATE COL_NAME=EXPR, ... ]
 
 With `INSERT ... SELECT', you can quickly insert many rows into a table
 from one or many tables. For example:
 
      INSERT INTO tbl_temp2 (fld_id)
        SELECT tbl_temp1.fld_order_id
        FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
 
 The following conditions hold for a `INSERT ...  SELECT' statements:
 
    * Specify `IGNORE' to ignore rows that would cause duplicate-key
      violations.
 
    * `DELAYED' is ignored with `INSERT ... SELECT'.
 
    * The target table of the `INSERT' statement may appear in the
      `FROM' clause of the `SELECT' part of the query. (This was not
      possible in some older versions of MySQL.)
 
    * `AUTO_INCREMENT' columns work as usual.
 
    * To ensure that the binary log can be used to re-create the
      original tables, MySQL does not allow concurrent inserts for
      `INSERT ... SELECT' statements.
 
    * Currently, you cannot insert into a table and select from the same
      table in a subquery.
 
 In the values part of `ON DUPLICATE KEY UPDATE', you can refer to
 columns in other tables, as long as you do not use `GROUP BY' in the
 `SELECT' part. One side effect is that you must qualify non-unique
 column names in the values part.
 
Info Catalog (mysql.info) insert (mysql.info) insert (mysql.info) insert-delayed
automatically generated byinfo2html