【发布时间】:2016-08-16 22:05:36
【问题描述】:
我正在尝试创建一个程序,它在一小时前工作,现在它抛出一个错误。我导出了程序(为我复制了一个文本语句 phpmyadmin 输出),它不会让我执行我导出的代码。下面是导出的代码,后面是 phpmyadmin 正在显示的错误报告。
此外,所有的 sql 查询都是独立工作的,但是在我导出它之前调用该过程时,它正在运行,但查询不会影响任何行。我是不是将变量标记错了?(我不认为我是,我确实检查过)
我输入的内容:
CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteCard`(IN `@aName` VARCHAR(255))
NO SQL
BEGIN
UPDATE Decks
JOIN Amount ON amount.DeckName = decks.DeckName
SET decks.DeckTotal = Decks.DeckTotal - Decks.DeckTotal
WHERE Amount.AmountName = @aName;
UPDATE Types t1
JOIN Cards ON cards.TypeName = t1.TypeName
JOIN Amount ON amount.CardName = Cards.CardName
SET t1.TypeTotal = t1.TypeTotal - Amount.Amount
WHERE Amount.CardName = @aName;
DELETE
FROM Amount
WHERE CardName = @aName;
DELETE
FROM Cards
WHERE CardName = aName;
END
错误报告:
CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteCard`(IN `aName` VARCHAR(255))
NO SQL
BEGIN
UPDATE Decks
JOIN Amount ON amount.DeckName = decks.DeckName
SET decks.DeckTotal = Decks.DeckTotal - Decks.DeckTotal
WHERE Amount.AmountName = aName;
MySQL 说:文档
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的 '' 附近使用正确的语法
【问题讨论】:
-
您要么需要更改分隔符,使第一个
;不会被解释为过程的结束,要么使用专用的存储例程接口。
标签: mysql stored-procedures phpmyadmin