InterBase フィールドレコードの自動インクリメント[JAPAN]

Posted by on in Enterprise

InterBase 2017で テーブルフィールドの自動インクリメント

下記の様なテーブルがあったとして

create_table.sql
-- #t1 テーブル作成
create table t1(
    num_ int not null,
    name_ varchar(50) not null,
    primary key(num_)
);

t1テーブル

field名 null / PK
num_ int not null (PK)
name_ varchar(50) not null

trigger作成

新しくtriggerとgeneratorを作成、
triggerにはt1テーブルを割り当てます。

create_generator_trigger.sql
-- #generator作成
create generator sq1;

-- #t1テーブルのinsert前に tr1トリガーを作る
create trigger tr1 for t1
before insert as
begin
    new.num_ = gen_id(sq1,1);
end;

t1テーブルにインサートテスト

insert_t1.sql
-- #t1テーブルにインサート #自動番号
insert into t1(name_) values('森鴎外');

FireDAC TIntegerField設定

プロパティ 内容
AutoGenerateValue arAutoInc
ProviderFlags [pfInWhere,pfInKey]
ReadOnly true
Required false

TDBGridで表示

TDBGridで表示し、name_ だけを入力すれば連番が振られるのが確認できます。

 



About
Gold User, No rank,
Delphi / C++Builder blogger

Comments

Check out more tips and tricks in this development video: