ON DUPLICATE KEY UPDATE注意事项_MySQL
程序员文章站
2024-02-02 20:05:46
...
MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法,使得原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成。
例如ipstats表结构如下:
引用
CREATE TABLE ipstats (
ip VARCHAR(15) NOT NULL UNIQUE,
clicks SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'
);
原本需要执行3条SQL语句,如下:
IF (SELECT * FROM ipstats WHERE ip='192.168.0.1') {
UPDATE ipstats SET clicks=clicks+1 WHERE ip='192.168.0.1';
} else {
INSERT INTO ipstats (ip, clicks) VALUES ('192.168.0.1', 1);
}
而现在只需下面1条SQL语句即可完成:
INSERT INTO ipstats VALUES('192.168.0.1', 1) ON DUPLICATE KEY UPDATE clicks=clicks+1;
注意,要使用这条语句,前提条件是这个表必须有一个唯一索引或主键。
推荐阅读
-
ON DUPLICATE KEY UPDATE注意事项_MySQL
-
Mysql ON DUPLICATE KEY UPDATE使用方法
-
mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDAT_MySQL
-
mysql 出现Error: Duplicate entry “xxxx” for key 1解决办法
-
on duplicate key update简单使用
-
mysql error:#1062 Duplicate entry for key 1
-
mysql:insert on duplicate key 版本导致问题_MySQL
-
laravel - php向mysql执行insert时,提示“mysql duplicate key”,如何处理?
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决
-
mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法