我似乎無法得到這個權利,我想修改一個字段是一個外鍵,級聯刪除......我做錯了什麼?Postgresql約束
ALTER TABLE my_table
ADD CONSTRAINT $4
FOREIGN KEY my_field
REFERENCES my_foreign_table
ON DELETE CASCADE;
我似乎無法得到這個權利,我想修改一個字段是一個外鍵,級聯刪除......我做錯了什麼?Postgresql約束
ALTER TABLE my_table
ADD CONSTRAINT $4
FOREIGN KEY my_field
REFERENCES my_foreign_table
ON DELETE CASCADE;
如果您發佈的錯誤信息這將有助於。但我認爲你只是缺少括號:
ALTER TABLE my_table
ADD CONSTRAINT my_fk
FOREIGN KEY (my_field)
REFERENCES my_foreign_table
ON DELETE CASCADE;
只是猜測:你不應該添加一個外鍵而不是一個約束?
ALTER TABLE my_table ADD FOREIGN KEY (my_field) REFERENCES my_foreign_table;
外鍵*是*約束... – 2010-06-09 12:00:43
我仍然不知何故在這裏失去了與國外柱(foreign_field
)的答案明確指定:
ALTER TABLE my_table
ADD CONSTRAINT my_fk
FOREIGN KEY (my_field)
REFERENCES my_foreign_table (foreign_field)
ON DELETE CASCADE;
這工作對我來說,我添加列表中,然後與其他表引用添加約束:
-- add column to table
ALTER TABLE schema.table ADD COLUMN my_column type;
-- add constraint to column
ALTER TABLE schema.table ADD CONSTRAINT fk_name FOREIGN KEY (column)
REFERENCES schema.table (column) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
@Magnus Hagander,爲什麼是「ON DELETE CASCADE」有用嗎?我不明白它...... – 2013-04-07 02:22:15
@Stephane查看接受的答案[這個問題](http://stackoverflow.com/questions/14141266/postgresql-foreign-key-on-delete-cascade)「_A外鍵級聯刪除意味着如果父表中的記錄被刪除,那麼子表中的相應記錄將自動被刪除,這被稱爲級聯刪除。「看起來像你不想自動包含的東西,除非你想將表格綁定在一起而不是僅僅創建一個引用。 – 2013-06-21 15:22:01
@RichardD,當你沒有包含它時,你必須在查詢中使用CASCADE關鍵字,並且你會記住後果:) – Line 2014-12-11 11:55:33