主键冲突错误,执行UPDATE操作。
INSERT [ INTO ] [ schema_name. ]table_name [ ( column_name [ , ... ] ) ] VALUES( expression [ , ... ] ) ON DUPLICATE KEY UPDATE {column_name = expression} [ , ... ]
参数说明
IGNORE:用于忽略会导致重复关键字错误的记录,不支持和ON DUPLICATE KEY UPDATE同时使用。
table_name:待**的表名。
column_name:待**的表字段名。
如果insert语句所指定的字段名包含表中的所有字段,则可能省略字段名。取值范围:已存在的字段名。
expression:**字段的值或表达式。
select_clause:SELECT查询结果集作为新值**到表中,具体参数,参考select章节。
select_list:指定查询列。
table_list:指定查询表,可以是表、视图、子查询。
DISTINCT:关键字,表示查询结果集是否需要去重。取值范围:已存在的字段名,或字段表达式。
where_clause:指定查询结果集要满足的条件。
group_by_clause:指定查询结果集要满足的分组规则。
order_by_clause:指定查询结果集要满足的排序规则。
limit_clause:指定查询结果集要满足的界限。
ON DUPLICATE KEY UPDATE:指定**记录的主键和已有记录的主键冲突时执行UPDATE操作。根据索引定义的顺序遍历各列查找冲突记录。例如,表t1包含三列,列名分别为f1、f2、f3,索引建立顺序为f3->f2->f1,那么在**记录的主键和已有记录的主键冲突时,GaussDB 100通过遍历列数据查找冲突的顺序为f3->f2->f1。