可能重复:
如何在 SQL 中对同一表的列强制执行外键约束
表格1
Column1 Column2 Column3
1 value 1
2 value 1
3 value 2
在同一个表中,第 1 列是主键,但第 3 列的值必须来自第 1 列。如何创建这样的表。
可能重复:
如何在 SQL 中对同一表的列强制执行外键约束
表格1
Column1 Column2 Column3
1 value 1
2 value 1
3 value 2
在同一个表中,第 1 列是主键,但第 3 列的值必须来自第 1 列。如何创建这样的表。
可能你正在寻找self referencing table
create TABLE MyTable
(
Column1 NUMBER,
Column2 varchar2(30),
Column3 NUMBER,
PRIMARY KEY(column1),
CONSTRAINT fk_column1_2
FOREIGN KEY (column3)
REFERENCES MyTable (column1)
);
如果您的表已经存在,那么您需要运行几个 ddl 语句
CREATE TABLE TABLE_1
(
column1 NUMBER (4) NOT NULL ,
column2 VARCHAR2(20) NOT NULL ,
column3 NUMBER (4)
)
;
ALTER TABLE TABLE_1
ADD CONSTRAINT TABLE_1_PK PRIMARY KEY ( column1) ;
ALTER TABLE TABLE_1
ADD CONSTRAINT TABLE_1_TABLE_1_FK FOREIGN KEY
(
column3
)
REFERENCES TABLE_1
(
column1
)
;
您可以使用 CHECK Constraint 执行此操作:
CREATE TABLE TEST (
a number,
b number,
CONSTRAINT CKAEQUALB CHECK (a = b)
);