MySql避免重复插入记录方法

类似oracle merge into

创建_user表


CREATE TABLE _user (
id VARCHAR(36) NOT NULL,
pro_id VARCHAR(36),
mobile VARCHAR(36) NOT NULL,
ctm DATETIME,
cnt INTEGER,
PRIMARY KEY (id)
);

约束:

ALTER TABLE _user DROP INDEX mobile;

ALTER TABLE _user ADD UNIQUE (mobile);

添加联合约束:

ALTER TABLE _user ADD CONSTRAINT uni_proid_mobile unique(pro_id,mobile);//添加联合约束并指定该约束名称是uni_proid_mobile

ALTER TABLE _user ADD UNIQUE KEY (pro_id,mobile);//此时该联合约束名字默认为pro_id

删除联合约束

ALTER TABLE _user DROP INDEX uni_proid_mobile;

ALTER TABLE _user DROP INDEX pro_id;

查看表结构:

show create table _user;



插入数据,

插入 语句后加入 ON DUPLICATE KEY 主键匹配成功后所要做的更新操作

INSERT IGNORE  INTO _user (id,pro_id,mobile,ctm,cnt)  VALUE(uuid(),'pro_id','13800138000',now(),1 ) ON DUPLICATE KEY UPDATE cnt =cnt+1;
INSERT IGNORE  INTO _user (id,pro_id,mobile,ctm,cnt)  VALUE(uuid(),'pro_id','13800138000',now(),1 ) ON DUPLICATE KEY UPDATE cnt =cnt+1,ctm =now();

参考:

http://blog.csdn.net/justhavetry/article/details/36627899

http://blog.csdn.net/arkblue/article/details/9070797

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值