Ben*_*Ben 5 sql postgresql constraints foreign-keys
我有一个简单的表格,如下所示。
create table chemlab.rule_header (
id serial PRIMARY KEY,
name varchar(50),
grade varchar(20),
class_tag varchar(20), --tag added to sammple if match
parent_id int REFERENCES chemlab.rule_header(id) DEFAULT NULL,
unique( grade, class_tag )
)
Run Code Online (Sandbox Code Playgroud)
但是之后,我发现我需要添加ON DELETE操作,默认值为NO ACTION。我不知道如何更改操作。
现在我必须DROP&ADD
ALTER table chemlab.rule_header
DROP CONSTRAINT rule_header_parent_id_fkey ;
ALTER TABLE rule_header
ADD CONSTRAINT rule_header_parent_id_fkey
FOREIGN KEY (parent_id) REFERENCES chemlab.rule_header(id) ON DELETE RESTRICT;
Run Code Online (Sandbox Code Playgroud)
那么,改变对外键约束的操作的正确语法是什么?
那么,这不能直接改变外键约束和有DROP和ADD的是,虽然这仅仅是一个语句:
ALTER table chemlab.rule_header
DROP CONSTRAINT rule_header_parent_id_fkey,
ADD CONSTRAINT rule_header_parent_id_fkey
FOREIGN KEY (parent_id) REFERENCES chemlab.rule_header(id) ON DELETE RESTRICT;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2662 次 |
| 最近记录: |