21

I renamed a table, and apparently a foreignkey in it doesn't get changed, and causing problems, Although when I \d error I get:
"error_test_id_fkey" FOREIGN KEY (test_id) REFERENCES test(id) ON DELETE CASCADE

Which the only relation to error name, is the name (weird)

Anyway - I have no problem deleting the foreignkey and recreating it, but I can't figure out how to do it

Boaz
  • 313
  • 1
  • 2
  • 4
  • It seems worth mentioning that technically the name of the foreign key is in no way related to the names of the objects it refers from/to. It is a quite useful convention though to give the foreign keys names that let the human user derive their purpose. Therefore in such a case I recommend that you also rename the foreign key. Luckily an answer for that is already present :) – SebastianH May 15 '20 at 08:59

1 Answers1

39

If you are using PostgreSQL 9.2 or newer, you can use RENAME CONSTRAINT:

ALTER TABLE name RENAME CONSTRAINT "error_test_id_fkey" TO "the_new_name_fkey";
ThiefMaster
  • 615
  • 6
  • 12