Domanda Vincolo Postgresql


Non riesco a capire bene, sto cercando di modificare un campo per essere una chiave straniera, con eliminazione a cascata ... cosa sto facendo di sbagliato?

ALTER TABLE my_table 
ADD CONSTRAINT $4 
FOREIGN KEY my_field 
REFERENCES my_foreign_table 
ON DELETE CASCADE;

44
2018-06-09 11:12


origine


risposte:


Sarebbe utile se hai postato il messaggio di errore. Ma penso che manchi solo la parentesi:

ALTER TABLE my_table 
ADD CONSTRAINT my_fk 
FOREIGN KEY (my_field) 
REFERENCES my_foreign_table 
ON DELETE CASCADE;

81
2018-06-09 12:02



Solo supposizioni: non dovresti aggiungere una chiave esterna invece di un vincolo?

ALTER TABLE my_table ADD FOREIGN KEY (my_field) REFERENCES my_foreign_table;

Riferimento Postgresql


12
2018-06-09 11:21



In qualche modo mi manca ancora una risposta con la colonna straniera (foreign_field) specificato esplicitamente:

ALTER TABLE my_table
ADD CONSTRAINT my_fk
FOREIGN KEY (my_field)
REFERENCES my_foreign_table (foreign_field)
ON DELETE CASCADE;

12
2018-03-26 17:35



Questo funziona per me, aggiungo la colonna alla tabella e quindi aggiungo il vincolo con i riferimenti all'altra tabella:

-- 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; 

1
2018-04-25 14:58