mysql的UPDATE语句,程序没报错,但没生效。求高手指点!急急急

BEGINDECLAREidINT;DECLAREczmcVARCHAR(255);DECLAREbzsjVARCHAR(255);SETid=Id;SETczmc=ca... BEGIN
DECLARE id INT;
DECLARE czmc VARCHAR(255);
DECLARE bzsj VARCHAR(255);
SET id=Id;
SET czmc=caoZuoMingCheng;
SET bzsj=biaozhun;
UPDATE standard SET caoZuoMingCheng=czmc,biaoZhunShiJian=bzsj
WHERE ID=id;
END

参数:IN `Id` INT,IN `caoZuoMingCheng` varchar(255),IN`biaozhun` double
展开
 我来答
wangzhiqing999
2011-04-27 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3264万
展开全部
SET id=Id;
这个语句,看起来很困惑.

搞不好这句话执行完了, = 啥事情没干。

UPDATE standard SET caoZuoMingCheng=czmc,biaoZhunShiJian=bzsj
WHERE ID=id;

这里的条件是 WHERE 数据库的 ID 字段 = 变量id

有可能是前面的 id , 没有正确的赋值, 导致这里更新的时候,没有满足条件的数据。
追问
我按照你的话把id改成ident,与Id不同。结果对整个表的每一行都生效了。
WHERE其他列都能成功,就是ID这一列不行

估计是WHERE ID=ident有问题
或者是ID列自增主键的问题。

试了很久还是不行呐......究竟是怎么回事呢....
专业保证
2011-04-27 · TA获得超过473个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:252万
展开全部
你的这个存储过程 创建的参数有点问题

IN `Id` INT,IN `caoZuoMingCheng` varchar(255),IN`biaozhun` double
假如过程名字为update(IN Id integer,IN caoZuoMingCheng varchar(255),IN biaozhun double)
这个参数给的是变量 不是特定的值。

调用的时候才使用特定的值 call update (100,'string1', 2000);
那么执行的时候就会update 更新这些数据了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WOSQQA
2011-04-27 · 超过18用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:49.7万
展开全部
更新后没有 commit 提交,肯定就没有啊! end 前加个 commit ; 吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式