我有一个表来存储参数名称
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")
}
对于带有参数 ID 的特定参数名称,我使用 ParamId 将参数值存储在另一个表中。
现在我正在使用 JDBC 来获取和设置表的值。现在我想做这样的事情。
从 JDBC 插入参数值时,如果参数值为 null 或为空,即如果有人从 JDBC 插入 null 值或空值,我想将默认值从 PARAM_NAMES 表复制到 PARAM_VALUES 表 PARAM_VALUE 列。我可以在 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