我想知道如何才能确保的值SecondInstrument
不等于的值,PrimInstrument
因为音乐家不能两次用同一把乐器演奏得好。到目前为止,这是我尚未尝试过的操作,但收到以下错误消息:
02438. 00000 - "Column check constraint cannot reference other columns"
*Cause: attempted to define a column check constraint that references
another column.
*Action: define it as a table check constraint.
有人可以帮我解决这个问题吗?;) 提前致谢。
Create table SessionMusician (
Musician_ID number constraint pkSessionMus_Mus_ID Primary Key,
StageName varchar2(30)constraint nnSessionMus_StageName Not NULL,
RealName varchar2(30)constraint nnSessionMus_RealName Not NULL,
PrimInstrument varchar2(30) constraint nnSessionMus_PrimInstrumant Not Null,
SecondInstrument varchar2(30) Default 'N/A' Constraint
chk_SessionMus_Secinstrument check (SecondInstrument <> PrimInstrument),
CONSTRAINT SessionMusician_unique UNIQUE (StageName,RealName));
您需要使其成为离线约束:
CREATE TABLE SessionMusician (
Musician_ID NUMBER CONSTRAINT pkSessionMus_Mus_ID PRIMARY KEY,
StageName VARCHAR2(30) CONSTRAINT nnSessionMus_StageName NOT NULL,
RealName VARCHAR2(30) CONSTRAINT nnSessionMus_RealName NOT NULL,
PrimInstrument VARCHAR2(30) CONSTRAINT nnSessionMus_PrimInstrumant NOT NULL,
SecondInstrument VARCHAR2(30) DEFAULT 'N/A',
CONSTRAINT SessionMusician_unique UNIQUE ( StageName, RealName ),
CONSTRAINT chk_SessionMus_Secinstrument CHECK (SecondInstrument <> PrimInstrument)
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句