代码之家  ›  专栏  ›  技术社区  ›  Phil

如何使用生成器填充列?

  •  0
  • Phil  · 技术社区  · 6 年前

    我正在用C创建一个ASP.NET MVC Web应用程序。我创建了一个基于Firebird数据库的模型类。我遇到的问题是,当我向一个表中插入一个新记录时,表的生成器没有被调用,所以我得到了一个 NULL 该列中的值。

    如何在每个表/每个字段的基础上指定哪些列 IDENTITY 纵队,并把他们与各自的发电机在火鸟?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Mr. Nice    6 年前

    1。创建生成器

    CREATE SEQUENCE GEN_TESTTABLE_ID
    

    2。创建触发器

    CREATE TRIGGER testtable_bi FOR testtable
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
      IF (NEW.id IS NULL) THEN
        NEW.id = GEN_ID(gen_testtable_id,1);
    END
    

    三。创建过程

    CREATE PROCEDURE sp_gen_testtable_id
    RETURNS (id INTEGER)
    AS
    BEGIN
      id = GEN_ID(gen_testtable_id, 1);
      SUSPEND;
    END
    

    在Firebird 3中,您可以使用Identity主键

    create table t1 (
       id integer generated by default as identity primary key
    )
    

    Also a useful answer link