我有一個表來存儲參數名稱添加約束複製列
CREATE TABLE PARAM_NAMES
{
PARAM_TYPE_ID" NUMBER(*,0) NOT NULL ENABLE,
"PARAM_NAME" VARCHAR2(64 BYTE) NOT NULL ENABLE,
"DEFAULT_VALUE" VARCHAR2(256 BYTE),
CONSTRAINT "PARAMS_UK1" UNIQUE ("PARAM_TYPE_ID")
//PARAM_TYPE ID is the primary key
}
我還有其他的表來存儲參數值,
CREATE TABLE PARAM_VALUES"
{ "ID" NUMBER(*,0) NOT NULL ENABLE,
"PARAM_TYPE_ID" NUMBER(*,0) NOT NULL ENABLE,
"PARAM_VALUE" VARCHAR2(256 BYTE),
CONSTRAINT "PARAM_VALUES_PK" PRIMARY KEY ("ID", "PARAM_TYPE_ID")
}
對於PARAM標識特定的參數名我使用ParamId將參數值存儲在另一個表中。
現在我正在使用JDBC來獲取和設置表的值。現在我想做一些這樣的事情。
雖然從JDBC插入參數值我想插入DEFAULT_VALUE如果paramvalue爲空或空,即如果有人從JDBC插入空值或空值我想從PARAM_NAMES表複製默認值PARAM_VALUES表PARAM_VALUE column.Anything我可以在SQL級別或約束級別做?我知道我可以在插入前檢查java中是否null如果不復制默認值,但想知道什麼在SQL級別。
PARAM_TYPE_ID PARAM_NAME DEFAULT_VALUE
1 ABC TEST1
2 CDE TEST2
3 FGH TEST3
PARAM_TYPE_ID PARAM_VALUE
1 TEST4 //Since not null
2 TEST2 //since null default value is copied
3 TEST3 //since null default value is copied
是否可以更改默認值,如果是,您是否希望該更新值適用於所有默認的'PARAM_VALUES'條目? –
默認值不會改變。但特定的默認值將根據特定的param_type_id進行更新 – constantlearner