请高手给写个存储过程,急用!

blue_apple2006 2008-03-19 02:25:58

有一张表temp(id,num)已经存在,现在想添加信息
insert into temp values(1,1);
要求:
如果已经存在要插入的id号,则更新此条信息.
.
问题在于,如何根据插入语句判断是否成功,然后再选择更新语句.
mysql_query(),mysql_affected_rows()这2个函数是怎么用的,请写清楚点.
最好用事务封装一下.谢谢
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
blue_apple2006 2008-03-20
  • 打赏
  • 举报
回复
哦,有道理.谢谢了
懒得去死 2008-03-20
  • 打赏
  • 举报
回复
select count(*) from ... into @cnt;
if @cnt > 0 then
update ...
else
insert ...
end if;
faisun 2008-03-19
  • 打赏
  • 举报
回复
用 replace into 不行吗?
iihero_ 2008-03-19
  • 打赏
  • 举报
回复
你这种应用逻辑不太好,
应该先按照PK值进行判断,是否存在 此记录,如果存在,则update
否则,insert
这样做更加通用一些。
至于affected_rows()
如果插入失败,返回0
插入成功,返回1
更新成功,返回的是实际上更新的行数(不一定只影响一行,要看你是否带PK值来update)
blue_apple2006 2008-03-19
  • 打赏
  • 举报
回复
如果先要进行判断的话这样没一条插入或是更新都要执行2条语句,即先select 再进行要的操作,这样效率会降低一倍.
我想直接进行操作,通过那2个函数判断所得的结果值,如果没有执行再执行别的操作,可不知道怎么使用这2个函数.
sql server中有个全局变量,可mysql中我不知道怎么来使用,请给个例子.
rainbowliuliang 2008-03-19
  • 打赏
  • 举报
回复
temp表的id 列如果是主键列 判断主键的错误~

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧