Sql 具有定义值的唯一约束
给定以下示例表结构,是否有方法添加到唯一约束以确保(GUID,'Y')组合的唯一性 应用程序逻辑-通过Sql 具有定义值的唯一约束,sql,oracle,check-constraints,Sql,Oracle,Check Constraints,给定以下示例表结构,是否有方法添加到唯一约束以确保(GUID,'Y')组合的唯一性 应用程序逻辑-通过guid更新生成具有相同guid但新luid的新版本;前一个变为非活动状态('Y'->'N') GUID-外部id LUID-内部id create table id_active( "GUID" RAW(16) NOT NULL, "LUID" RAW(16) NOT NULL, "IS_ACTIVE" char(1) NOT NULL CHECK ( "IS_ACT
guid
更新生成具有相同guid
但新luid
的新版本;前一个变为非活动状态('Y'->'N')
GUID-外部idLUID-内部id
create table id_active(
"GUID" RAW(16) NOT NULL,
"LUID" RAW(16) NOT NULL,
"IS_ACTIVE" char(1) NOT NULL CHECK ( "IS_ACTIVE" IN ('Y', 'N')),
PRIMARY KEY ("GUID", "LUID"),
--unique constraint goes here
您可以创建一个唯一的基于函数的索引,并利用Oracle不为b树索引中的空值编制索引这一事实
CREATE UNIQUE INDEX one_active_guid
ON table_name( (CASE WHEN is_active = 'Y'
THEN guid
ELSE null
END) );