使用“ ON DUPLICATE KEY UPDATE”在批处理插入中的PK上重复两个记录时会发生什么

我正在使用Java + mysql。我尝试在脚本中使用“ ON DUPLICATE KEY UPDATE”批量插入,如果PK重复则进行更新。我了解,如果插入行的PK与现有记录相同,那么现有记录将被更新。但是,如果有两个插入的行具有相同的PK怎么办?例如,在我的插入sql脚本中,它类似于

insert into table1 (col1,col2,col3) values (?,?,?),(?,?') on duplicate key update col1=?,col2=?,col3=? 

其中col1是table1的PK。现在,假设我的插入记录是

insert into table1 (col1,col3) values (val1,val2,val3),(val1,val4,val5)

它会失败还是在表中包含(val1,val4,val5)?谢谢。

wqs695932489 回答:使用“ ON DUPLICATE KEY UPDATE”在批处理插入中的PK上重复两个记录时会发生什么

根据建议,我只是使用以下代码进行了测试

CREATE TABLE `people` (
  `name` varchar(25) NOT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO people (name,age)
    VALUES
    ('Helen',24),('Katrina',21),('Helen',22),('Hui Ling',25),('Yumie',29)
ON DUPLICATE KEY UPDATE
    name = VALUES(name),age = VALUES(age);

插入了四行,其中('Helen',22)是行。

本文链接:https://www.f2er.com/3055181.html

大家都在问