我檢查了Oracle提供的文檔,發現了一種修改約束而不刪除表的方法。問題是,它在修改時出錯,因爲它無法識別關鍵字。試圖修改PostgreSQL中的約束條件
將EMS SQL管理器用於PostgreSQL。
Alter table public.public_insurer_credit MODIFY CONSTRAINT public_insurer_credit_fk1
deferrable, initially deferred;
我能夠通過降低使用約束來解決它:
ALTER TABLE "public"."public_insurer_credit"
DROP CONSTRAINT "public_insurer_credit_fk1" RESTRICT;
ALTER TABLE "public"."public_insurer_credit"
ADD CONSTRAINT "public_insurer_credit_fk1" FOREIGN KEY ("branch_id", "order_id", "public_insurer_id")
REFERENCES "public"."order_public_insurer"("branch_id", "order_id", "public_insurer_id")
ON UPDATE CASCADE
ON DELETE NO ACTION
DEFERRABLE
INITIALLY DEFERRED;
爲什麼在使用PostgreSQL時檢查Oracle文檔(並用'plsql'標記此問題)?什麼是確切的錯誤(哪個關鍵字不被識別)? – Bruno
ERROR:語法錯誤處或附近 「修改」 LINE 1:ALTER TABLE public.public_insurer_credit MODIFY約束p ... ^ (0.359秒) – MISMajorDeveloperAnyways
檢查的Postgres的Oracle的文檔,然後指責Postgres的。史詩。 –