我试图创建一个存储过程,用递增的升序数字更新表中的一列。
我的密码
CREATE DEFINER=`cis23383518`@`192.168.122.1` PROCEDURE `Increment_rows`(IN TheTable VARCHAR(20),IN TheID VARCHAR(20))
BEGIN
DECLARE i INT;
SET i = 0;
UPDATE TheTable
SET TheID = i,i= i+1;
END
我把这个程序称为
CALL Increment_rows('Officer','IncidentID');
我得到以下错误:表cis23383518.thetable不存在。
2条答案
按热度按时间0sgqnhkj1#
mysql不会用提供的参数替换表名,更新会查找名为thetable的表。如果要为过程提供表名,则必须构建sql语句并提交,例如
注意使用变量来增加status列。如此给定
注意,我认为update语句可能需要where语句。
wh6knrhe2#
精简程序不是强制性的。
如果使用创建过程的相同用户标识调用该过程,只需删除它: