[英]MySQL stored procedure syntax
我正在尝试在MySQL中创建一个非常基本的存储过程。 它必须增加表中的int值。 我还希望删除存储过程(如果已存在)。 存储过程中的sql本身可以正常运行。
我收到此错误:
您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第5行的“ END”附近使用
我努力了:
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver
END$$
DELIMITER
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver
END
解:
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @num = (SELECT number FROM version LIMIT 1) + 1;
UPDATE version SET number = @num;
END
尝试这个
DROP PROCEDURE IF EXISTS sp_version_increment;
DELIMITER $$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver;
END $$
DELIMITER ;
DROP PROCEDURE IF EXISTS sp_version_increment;
DELIMITER $$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @ver = (SELECT version FROM version LIMIT 1) + 1;
UPDATE version SET version = @ver;
END $$
DELIMITER ;
我自己找到了答案:
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_version_increment$$
CREATE PROCEDURE `sp_version_increment`()
BEGIN
SET @num = (SELECT number FROM version LIMIT 1) + 1;
UPDATE version SET number = @num;
END
我仍然不知道为什么它不接受我提出的其他查询,所以如果有人可以在这个问题上说几句话,我会很高兴的:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.