Constraint
H2 SELECT NULLABLE 或其他等效項以檢查列是否具有 NOT NULL 約束
我想檢查列是否具有 NOT NULL 約束,以便開始自動升級表定義。但是在 H2 中,SQL
SELECT NULLABLE FROM TABLE_NAME
沒有返回 NOT NULL 列,而且我似乎沒有找到任何類似的東西來檢查表列上的約束。請注意,我不想用類似的東西檢查 NOT NULL 列值
SELECT COLUMN FROM TABLE WHERE COLUMN IS NOT NULL
!我想檢查該特定列的表定義。謝謝
如果你有這樣的定義:
create table foo ( id integer not null )
以下查詢將在
is_nullable
列中顯示“否”:select table_name, column_name, is_nullable from information_schema.columns
如果該列具有檢查約束,如下所示:
create table foo ( id integer, constraint id_not_null check (id is not null) );
那麼這將在第一個查詢中顯示為“可為空”。您需要檢查
information_schema.constraints
和分析CHECK_EXPRESSION
列的內容以檢測到這一點。