Postgresql约束

Rya*_*yan 44 postgresql foreign-keys

我似乎无法做到这一点,我试图修改一个字段作为外键,级联删除...我做错了什么?

ALTER TABLE my_table 
ADD CONSTRAINT $4 
FOREIGN KEY my_field 
REFERENCES my_foreign_table 
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

Mag*_*der 81

如果您发布了错误消息,将会有所帮助.但我认为你只是错过了括号:

ALTER TABLE my_table 
ADD CONSTRAINT my_fk 
FOREIGN KEY (my_field) 
REFERENCES my_foreign_table 
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)

  • @Stephane查看[此问题]的已接受答案(http://stackoverflow.com/questions/14141266/postgresql-foreign-key-on-delete-cascade)"_带有级联删除的外键表示如果有记录,删除父表,然后自动删除子表中的相应记录.这称为cascade delete._"看起来像你不想自动包含的东西,除非你想把表绑定在一起而不是只是创建参考. (4认同)

Ano*_*ard 13

只是猜测:你不应该添加外键而不是约束吗?

ALTER TABLE my_table ADD FOREIGN KEY (my_field) REFERENCES my_foreign_table;
Run Code Online (Sandbox Code Playgroud)

Postgresql参考


Tre*_*reg 12

我仍然在某处错过了一个foreign_field明确指定的外部列()的答案:

ALTER TABLE my_table
ADD CONSTRAINT my_fk
FOREIGN KEY (my_field)
REFERENCES my_foreign_table (foreign_field)
ON DELETE CASCADE;
Run Code Online (Sandbox Code Playgroud)