5

这是我的程序代码。我正在尝试通过将旧用户名放在 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 ;

请帮我解决这个问题。

4

3 回答 3

2

尝试从行号“6”中删除“用户名”并使用其他参数名称。它可能与您的表用户名字段冲突。例如:UPDATE table_name SET Username=OTHER_PARAMETER_NAME WHERE Username=uname;

于 2013-01-31T11:07:06.947 回答
0

如果 tid 是表名,您不应该在更新查询中使用 tid 而不是 table_name 吗?

于 2013-01-31T10:42:08.013 回答
0

嗨我遇到了同样的问题给表名一个别名并尝试运行更新查询

试试这个查询

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; 
于 2013-05-27T13:34:09.863 回答