Postgresql constraint

前端 未结 4 1060
终归单人心
终归单人心 2021-02-06 21:23

I cannot seem to get this right, I am trying to modify a field to be a foreign key, with cascading delete... what am i doing wrong?

ALTER TABLE my_table 
ADD CON         


        
相关标签:
4条回答
  • 2021-02-06 21:38

    It would help if you posted the error message. But I think you are just missing the parenthesis:

    ALTER TABLE my_table 
    ADD CONSTRAINT my_fk 
    FOREIGN KEY (my_field) 
    REFERENCES my_foreign_table 
    ON DELETE CASCADE;
    
    0 讨论(0)
  • 2021-02-06 21:49

    This works to me, I add the column to the table and then add the constraint with references to the other table:

    -- 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; 
    
    0 讨论(0)
  • 2021-02-06 21:55

    Just guessing: shouldn't you add a foreign key instead of a constraint?

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

    Postgresql reference

    0 讨论(0)
  • 2021-02-06 21:59

    I'm still somehow missing here an answer with foreign column (foreign_field) explicitly specified:

    ALTER TABLE my_table
    ADD CONSTRAINT my_fk
    FOREIGN KEY (my_field)
    REFERENCES my_foreign_table (foreign_field)
    ON DELETE CASCADE;
    
    0 讨论(0)
提交回复
热议问题