0

有没有办法使用 fluentmigrator / firebirdsql 创建触发器?

当我尝试这个

Execute.Sql(@"CREATE TRIGGER TEST_BI FOR 'Test'
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
    IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GEN_TEST_ID,1)
END
");

什么都没发生。我使用 SET TERM ^ 尝试了 firebird 语法;但我得到一个错误。我还尝试使用 Execute.Script() 从脚本调用 DDL 语句,但仍然没有。

有什么建议么?谢谢!

4

1 回答 1

0

我对 Firebird 不太了解,但我猜你不能在事务中创建触发器。查看有关如何关闭事务的 wiki 页面:https ://github.com/schambers/fluentmigrator/wiki/Transaction-modes-for-the-migration-runner

您需要像这样在迁移中设置一个属性:

[Migration(201304210958, TransactionBehavior.None)]
于 2013-12-15T14:13:55.293 回答