1. ホーム
  2. sql-server

[解決済み] SQL Server: テーブルに1つの行を含むように制約をかけるには?

2023-03-30 18:29:27

質問

アプリケーションの設定テーブルに 1 つの行を保存したいと思います。 私は、このテーブルが1つの行だけを含むことができることを強制したいと思います。

単一行制約を適用する最も簡単な方法は何ですか。

どのように解決するのですか?

カラムのいずれかが1つの値しか含まないことを確認し、それを主キーとします(または一意性制約を適用します)。

CREATE TABLE T1(
    Lock char(1) not null,
    /* Other columns */,
    constraint PK_T1 PRIMARY KEY (Lock),
    constraint CK_T1_Locked CHECK (Lock='X')
)

私は様々なデータベースにこのようなテーブルをいくつも持っています。設定項目がintである場合、DBからintしか読み込まないということを知っていると、とてもすっきりします。