您的位置:首页 > 数据库 > MySQL

MySql避免重复插入记录方法

2017-12-15 10:42 417 查看
类似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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: