mysql存储过程声明错误
我真的不明白这个错误 我把declare语句放在begin之后。我经常使用MS SQL,所以我不太熟悉mysql语法。请帮帮我mysql存储过程声明错误,mysql,stored-procedures,declare,Mysql,Stored Procedures,Declare,我真的不明白这个错误 我把declare语句放在begin之后。我经常使用MS SQL,所以我不太熟悉mysql语法。请帮帮我 DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `AddEntry2`(IN `inDate` DATE, IN `inUser` INT, IN `inComment` TEXT, IN `inStart` INT, IN `inEnd` INT) BEGIN DECLARE commID UNSIGN
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `AddEntry2`(IN `inDate` DATE, IN `inUser` INT, IN `inComment` TEXT, IN `inStart` INT, IN `inEnd` INT)
BEGIN
DECLARE commID UNSIGNED;
INSERT IGNORE INTO dimcomment (comment) values (inComment);
SELECT commID := MAX(id)
FROM dimcomment
WHERE comment = inComment;
INSERT INTO factentry (FKDate, FKUser, FKComment,FKStart,FKEnd,FKAbsence)
VALUES (
inDate,
inUser,
commID,
inStart,
inEnd,
1
);
END //
我得到的错误是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED;
INSERT IGNORE INTO dimcomment (comment) values (inComment);
SELECT c' at line 3
我将UNSIGNED更改为INT,错误消息更改为:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= MAX(id)
FROM dimcomment
' at line 5
似乎我无法通过SELECT VAR:=VALUE进行设置?除了语法问题之外,还有什么错误:
INSERT
<代码>选择最大值(id)序列将在负载下中断。使用SELECT LAST\u INSERT\u ID()
,看起来您应该在声明中使用INT
而不是UNSIGNED
INT UNSIGNED
可能有效-我想我从未尝试过。啊,你发布了错误。然后应该是这样-使用INT
或INT UNSIGNED
。检查帖子,我编辑了新的错误消息