CREATE DEFINER = 'root'@'localhost'
PROCEDURE client_logging_system.Proc_client_Delete(IN in_clientID int)
COMMENT '
-- Parameter:
-- in_clientID: ID of client
'
BEGIN
DECLARE exit handler for sqlexception
BEGIN
ROLLBACK;
end;
START TRANSACTION;
DELETE FROM `client` WHERE `client`.ID = in_clientID;
ALTER TABLE `client` AUTO_INCREMENT = in_clientID;
COMMIT;
END
我的程序在联机时出错:
ALTER TABLE `client` AUTO_INCREMENT = in_clientID;
对这个问题有什么建议吗?
2条答案
按热度按时间afdcj2ne1#
你不能在
ALTER
语句中使用变量,它需要一个文本数字。你需要使用PREPARE
创建动态SQL。ht4b089n2#
在例程中只能使用有限的DDL语句集。
如果你删除了一个ID不是最大的客户端,那么这个ALTER TABLE语句就没有意义了。