mysql 存储过程 insert,mysql通过存储过程简化INSERT和UPDATE_MySQL

本文介绍了一种使用SQL存储过程实现“插入或更新”(UPSI)操作的方法。该方法通过判断记录是否存在来决定执行UPDATE还是INSERT操作,以此减少数据库查询次数,提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理目的,当数据表中存在目标记录时,执行UPDATE;当数据表中不存在目标记录时,执行INSERT;从而减少一次查询数据库的过程

存储过程设计如下:

CREATE PROCEDURE `pro_SaveData`(IN `sinst` varchar(500),IN `supdt` varchar(500))

BEGIN

#直接更新记录

set @v_updsql=supdt;

prepare stmt from @v_updsql;

EXECUTE stmt;

#记录不存在,执行INSERT

IF ROW_COUNT() =0 THEN

set @v_intsql=sinst;

prepare stmt from @v_intsql;

EXECUTE stmt;

END IF;

deallocate prepare stmt;

END;

C#调用如下:

int r = data.ExecuteNonQuery(System.Data.CommandType.StoredProcedure,

@"CALL pro_SaveData (' INSERT INTO `table` VALUES ('1', 'username')',

'UPDATE table SET name='table222' WHERE id='1';')", null);

相关标签:过程

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值