【发布时间】:2018-04-17 01:39:57
【问题描述】:
我正在使用 netbeans 构建一个 javafx 项目,并为此使用 derby 数据库。
我有两张桌子,BOOK 和 ISSUE。
我想创建一个BEFORE INSERT trigger ON ISSUE 表来检查BOOK 表中名为“available”的布尔字段的值。
按下时名为 BookIssue 的按钮应检查以下触发器。
如果“available”的值为false,则应弹出警告消息,否则必须执行插入操作。
我无法正确获取触发命令。
String trigger = "CREATE TRIGGER toIssue NO CASCADE BEFORE INSERT ON ISSUE"
+ " FOR EACH ROW"
+ " BEGIN"
+ " SELECT isAvail from BOOK WHERE id = '"+ bookId + "'"
+ " IF isAvail = false"
+ " THEN RAISE_APPLICATION_ERROR(-20001,'Books Out of stock')"
+ " END IF"
+ " END";
databasehandler.execQuery(trigger);
我的日志中出现以下异常:
Exception at execQuery:dataHandlerSyntax error: Encountered "BEGIN" at line 1, column 71.
谁能帮我解决这个问题!我找不到任何其他与德比有类似问题的地方。
【问题讨论】:
标签: mysql sql database javafx derby