我是火鸟新手,有很多问题。我想将各种行插入到从另一个表中选择的表中。
这是代码:
/*CREATE GENERATOR POS; */
SET GENERATOR POS TO 1;
SET TERM ^;
create trigger BAS_pkassign
for MATERIAL
active before insert position 66
EXECUTE BLOCK
AS
declare posid bigint;
select gen_id(POS, 1)
from RDB$DATABASE
into :posid;
BEGIN
END
SET TERM ; ^
INSERT INTO MATERIAL ( /*ID */ LOCATION, POSID, ARTID, ARTIDCONT, QUANTITY )
SELECT 1000, ':posid', 309, BAS_ART.ID, 1
FROM BAS_ART
WHERE BAS_ART.ARTCATEGORY LIKE '%MyWord%'
ID 应从 66 开始自动递增。 posid 应该从 1 开始自动递增。
实际上它并没有插入任何东西。
我正在使用 Firebird Maestro,并且刚刚打开了 SQL 脚本编辑器(在执行脚本时不会抛出任何错误消息)。
有谁能够帮助我?
Thanks!
附加信息:
触发器应该自动递增列“ID” - 但我不知道如何准确地更改它,以便它可以工作。 ':posid' 使用它抛出一个错误 :posid 但像这样没有错误(我猜它被解释为细绳)。但我该如何正确使用它呢?
当我执行它时,我没有收到错误。表结构很简单。我有 2 张桌子:
1.
Material (
ID (INTEGER),
Location (INTEGER),
POSID (INTEGER),
ARTID (INTEGER),
ARTIDCONT (INTEGER),
QUANTITY (INTEGER),
OTHERCOLUMN (INTEGER))
2.另一个表
BAS_ART (ID (INTEGER), ARTCATEGORY (VARCHAR255))
-> 我想将 BAS_ART 表中的 ARTCATEGORY 列中包含“MyWord”的所有条目插入到 MATERIAL 表中。