mysql insert on update_MySQL 插入数据时,如存在则更新(ON DUPLICATE KEY UPDATE)用法简介说明...

摘要:

下文讲述MySQL数据表操作时,如果存在则更新的操作方法

实验环境:sql serer 2008 R2

在数据表的设计中,通常我们会为数据表加上主键,作为数据更新的条件。

例:

if exists(select null from tableName where keyId =@keyId)

begin

/*更新数据表*/

end

else

begin

/*插入数据表*/

end

这种写法最大的弊端就是,每次操作时,都使用了两条sql脚本,即先判断后运行。

那么在MySQL中,新推出了一个关键字“ ON DUPLICATE KEY UPDATE ”,我们可以使用此关键字达到“数据存在则更新,否则插入的目的”。

ON DUPLICATE KEY UPDATE 关键字的作用

向数据库插入数据时,如果主键值存在,则运行update操作,否则运行插入操作

ON DUPLICATE KEY UPDATE 关键字举例应用

---创建测试表

CREATE TABLE `maomao` (

`keyId` int(11) NOT NULL,

`info` varchar(80) DEFAULT NULL,

PRIMARY KEY (`keyId`)

) ENGINE=InnoDB;

---插入测试数据

INSERT INTO `maomao` VALUES ('1', 'sqlblog');

INSERT INTO `maomao` VALUES ('2', 'sqlserver');

INSERT INTO `maomao` VALUES ('3', 'maomao365.com');

---测试ON DUPLICATE KEY UPDATE关键字

INSERT INTO maomao(keyId,`value`) VALUES(3, 'insertTest') ON DUPLICATE KEY UPDATE `info`='updateTest';

---查询表数据

select * from `maomao`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值