我有 2 个表:TVSHOW 和 ACTOR。如果使用 DB2 的 ACTOR 表中不存在 TVSHOW 中插入的演员,我想拒绝记录。
db2 "ALTER TABLE TVSHOW ADD CONSTRAINT check_actor CHECK (actor in (select id from ACTOR))"
Run Code Online (Sandbox Code Playgroud)
我不断地遇到, During SQL processing it returned: SQL0546N The check constraint "check_actor" is invalid.
我怎样才能解决这个问题?
您不能在检查约束中使用子选择;您只能引用同一个表中的列。
但是,您要完成的是参照完整性约束(也称为外键)的用途。
ALTER TABLE TVSHOW ADD CONSTRAINT actor_fk FOREIGN KEY (actor) REFERENCES ACTOR(id)
Run Code Online (Sandbox Code Playgroud)
大概你已经定义了一个主键约束ACTOR.id
;如果没有,您需要定义它,或对该列的唯一约束。
归档时间: |
|
查看次数: |
555 次 |
最近记录: |