【发布时间】:2017-10-20 14:02:24
【问题描述】:
尝试使用例程面板在 phpmyadmin 中创建事务。我想做一个插入和更新:
START TRANSACTION;
INSERT INTO inventoryitems (item, quantity, userid)
VALUES(item, quantity, userid);
UPDATE users
SET cash = cash - (quantity * unitbuyprice);
COMMIT;
您可以在下面的屏幕截图中看到创建/编辑例程面板:
以下是我得到的错误:
以下查询失败:“CREATE DEFINER=root@localhostPROCEDURE InsertInventoryItem(IN item VARCHAR(255), IN quantity INT, IN userid INT, IN unitbuyprice INT) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER START TRANSACTION; INSERT INTO inventoryitems (item, quantity, userid) VALUES(item, quantity, userid); UPDATE users SET cash = cash - (quantity * unitbuyprice); COMMIT;"
MySQL 说:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“INSERT INTO inventoryitems (item, quantity, userid) VALUES(item, quantity, user' 附近使用正确的语法
如果我删除 Start Transaction、Commit 和 insert 或 update,那么程序就可以了。 IE 单条语句可以正常工作,但多条语句总是报错。
当我想在一个过程中包含多个语句时,我错过了什么。 我尝试过使用和不使用分号分隔符。
这些东西只适用于 MS SQL。我之前已经创建了包含数百条语句的过程。
提前为帮助干杯。
【问题讨论】:
标签: mysql stored-procedures phpmyadmin