关于重复密钥更新语句的MySQL示例
例如,在ipstats表结构如下:
复制代码代码如下所示:
创建表(ipstats
varchar(15)IP不空独特,
点击(5)符号的非空返回默认'0'
);
需要执行3个sql语句,如下所示:
复制代码代码如下所示:
如果(SELECT * FROM ipstats IP = '192.168.0.1){
更新ipstats设置点击次数=点击+ 1 = '192.168.0.1的IP;
{人}
插入ipstats(IP,点击)值('192.168.0.1 ',1);
}
现在只有以下1个SQL语句可以完成:
复制代码代码如下所示:
插入ipstats值('192.168.0.1 ',1)重复密钥更新点击=点击+ 1;
请注意,如果表必须具有唯一索引或主键,则使用此语句。
摘要如下:
1。如果表中没有主键记录,则替换和插入*更新与插入相同。
2,如果有一个表中的关键记录,取代相当于执行两个操作删除和插入,如果确实存在更新其他做插入操作插入*更新相当于执行。因此,如果能量场充满了取代是不完整的,该字段将导致无法更新将修改默认值,如果有自我提高的ID,自增ID将改变新的价值(如果增加自ID符号可能导致记录丢失);插入*更新只更新了该领域的一些字段将不会改变,没有更新(不强制修改默认值)。
多记录操作:
复制代码代码如下所示:
插入T(A,B,C)值(步骤,'b1 ','c1 '),('a2 ','b2)
在重复的密钥更新time check定期支票=值(time check定期支票)