INSERT Statement | VALUES  row_constructor_list } [AS  row_alias [( col_alias  [,  col_alias ] ...)]] [ON DUPLICATE KEY UPDATE  assignment_list ] INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]  tbl_name [PARTITION ( partition_name  [,  partition_name ] ...)] [AS  row_alias [( col_alias  [,  col_alias ] ...)]] SET  assignment_list [ON DUPLICATE KEY UPDATE  assignment_list ] INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO]  tbl_name [PARTITION ( partition_name  [,  partition_name ] ...)] [( col_name  [,  col_name ] ...)] [AS  row_alias [( col_alias  [,  col_alias ] ...)]] {SELECT ... | TABLE  table_name } [ON DUPLICATE KEY UPDATE  assignment_list ] value : { expr  | DEFAULT} value_list : value  [,  value ] ... row_constructor_list : ROW( value_list )[, ROW( value_list )][, ...] assignment : col_name  = [ row_alias .] value assignment_list : assignment  [,  assignment ] ... INSERT  inserts new rows into an existing table. The  INSERT ... VALUES ,  INSERT ... VALUES ROW() , and  INSERT ... SET  forms of the statement insert rows based on explicitly specified values. The  INSERT ... SELECT  form inserts rows selected from another table or tables. You can also use INSERT ... TABLE  in MySQL 8.0.19 and later to insert rows from a single table.  INSERT  with an  ON DUPLICATE KEY UPDATE  clause enables existing rows to be updated if a row to be inserted would cause a duplicate value in a  UNIQUE  index or  PRIMARY KEY . In MySQL 8.0.19 and later, a row alias with one or more optional column alises can be used with  ON DUPLICATE KEY UPDATE  to refer to the row to be inserted. For additional information about  INSERT ... SELECT  and  INSERT ... ON DUPLICATE KEY UPDATE , see Section 13.2.6.1, “INSERT ... SELECT Statement” , and Section 13.2.6.2, “INSERT ... ON DUPLICATE KEY UPDATE Statement” . In MySQL 8.0, the  DELAYED  keyword is accepted but ignored by the server. For the reasons for this, see Section 13.2.6.3, “INSERT DELAYED Statement” , Inserting into a table requires the  INSERT  privilege for the table. If the  ON DUPLICATE KEY UPDATE clause is used and a duplicate key causes an  UPDATE  to be performed instead, the statement requires the UPDATE  privilege for the columns to be updated. For columns that are read but not modified you need only the  SELECT  privilege (such as for a column referenced only on the right hand side of an  col_name = expr assignment in an  ON DUPLICATE KEY UPDATE  clause). When inserting into a partitioned table, you can control which partitions and subpartitions accept new rows. The  PARTITION  clause takes a list of the comma-separated names of one or more partitions or subpartitions (or both) of the table. If any of the rows to be inserted by a given  INSERT  statement do not match one of the partitions listed, the  INSERT  statement fails with the error  Found a row not 2631