mysql过程中的更新语句不起作用
Posted
技术标签:
【中文标题】mysql过程中的更新语句不起作用【英文标题】:Update Statement in mysql procedure in not working 【发布时间】:2013-01-31 10:10:28 【问题描述】:这是我的程序代码。我正在尝试通过将旧用户名放在 where 子句中来更新用户名。但它不起作用。
DELIMITER $$
DROP PROCEDURE IF EXISTS `databasename`.`UpdateUsername` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateUsername`
(IN uname VARCHAR(30),tid VARCHAR(100),username VARCHAR(30) )
BEGIN
UPDATE table_name SET Username=username WHERE Username=uname;
END $$
DELIMITER ;
请帮我解决这个问题。
【问题讨论】:
没有发现错误,不更新值。 Mahmoud Gamal 是的,它不起作用.. 而不是评论回答我我会接受它..非常感谢 【参考方案1】:尝试从行号“6”中删除“用户名”并使用其他参数名称。它可能与您的表用户名字段冲突。
例如:UPDATE table_name SET Username=OTHER_PARAMETER_NAME WHERE Username=uname;
【讨论】:
【参考方案2】:如果 tid 是表名,你不应该在更新查询中使用 tid 而不是 table_name 吗?
【讨论】:
"tid" 是另一个列名,它不是 table_name。【参考方案3】:您好,我也遇到了同样的问题,给表名取一个别名并尝试运行更新查询
试试这个查询
UPDATE table_name tn SET tn.Username=username WHERE tn.Username=uname;
我使用的查询是:
update file_structure fs set fs.active_status = 'N' where fs.fileid = temp_fileid and fs.appid = temp_appid;
【讨论】:
以上是关于mysql过程中的更新语句不起作用的主要内容,如果未能解决你的问题,请参考以下文章