我试图使用dbup来自动运行我的.NET 7应用程序中的数据库脚本。到目前为止,创建表的脚本都很好(当然,在做了很多工作之后),但是存储过程有问题。
...
BEGIN
IF (SELECT COUNT(*) FROM mytable WHERE REPLACE(TRIM(name), ' ', '') = trimmed_name) > 0
AND (SELECT REPLACE(TRIM(name), ' ', '') WHERE id=categoryId) != trimmed_name
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Category with given name already exists';
ELSE
UPDATE mytable SET name=categoryName, description=description
WHERE id = categoryId;
END IF;
END
出现以下错误消息:SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以在第21行的''附近使用正确的语法
- 第21行是SET MESSAGE_TEXT行 *
一般来说,我想知道是否有关键字我不能用dbup,因为我抛出错误相同的错误,如果我声明一个变量与“DECLARE”
我已经重构了,去掉了空格,仍然没有积极的一面
1条答案
按热度按时间gorkyyrv1#
我认为使用
SIGNAL
设置错误消息文本的MySQL语法存在问题--在此上下文中不需要SET
PS.请确保已正确配置DbUp项目以使用正确的数据库提供程序和连接字符串,并安装了任何必需的依赖项或包