在MySQL中,ON DUPLICATE KEY UPDATE语句用于在插入数据时遇到重复键值时执行更新操作。它的语法如下:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3)
ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2, column3 = value3;
在这个语法中,首先使用INSERT INTO语句插入数据,然后使用VALUES指定要插入的值。如果遇到重复键值,就会执行更新操作。
在ON DUPLICATE KEY UPDATE子句中,使用column = value的形式来指定要更新的列和对应的值。你可以指定多个列和值,用逗号分隔。
例如,假设有一个名为students的表,有两个列:id和name。如果id是主键,并且已经存在id为1的记录,然后执行以下语句:
INSERT INTO students (id, name)
VALUES (1, 'John')
ON DUPLICATE KEY UPDATE name = 'John Doe';
那么如果id为1的记录已存在,则会将name更新为’John Doe’。如果id为1的记录不存在,则会插入一条新记录,id为1,name为’John’。