私はすでにシーケンスを作成しました:
create sequence mainseq as bigint start with 1 increment by 1
このシーケンスを列のデフォルト値として使用するにはどうすればよいですか?
create table mytable(
id bigint not null default mainseq -- how?
code varchar(20) not null
)
それは十分に簡単であることがわかりました:
create table mytable (
id bigint not null constraint DF_mytblid default next value for mainseq,
code varchar(20) not null
)
または、テーブルがすでに作成されている場合:
alter table mytable
add constraint DF_mytblid
default next value for mainseq
for id
(訂正してくれたMatt Stromに感謝!)
ALTERステートメントは完全ではありません。目的のフィールドにデフォルトを割り当てるには、別のFOR句が必要です。
ALTER TABLE mytable
ADD CONSTRAINT DF_mytblid
DEFAULT (NEXT VALUE FOR mainseq) FOR [id]