[英]Dropping constraints to update tables - Current transaction is aborted
上下文:我想更新一個名為“項目”的表,並將項目編號從 10 更改為 45,其中項目名稱為“網站”。 該項目表有一個 PK(pnumber 屬性),它與另一個名為“WorksOn”的表相關,該表具有與項目表的主鍵 pnumber 相關的 FK(屬性 pno)。
該圖將是這樣的:
我正在嘗試類似的東西:
BEGIN TRANSACTION;
ALTER TABLE Workson DROP CONSTRAINT fk_workson_projects;
ALTER TABLE Projects DROP CONSTRAINT pk_projects;
UPDATE Projects
SET pnumber = 45
WHERE pname = 'Website';
ALTER TABLE Workson ADD CONSTRAINT fk_workson_projects FOREIGN KEY (pno) REFERENCES projects(pnumber);
ALTER TABLE Projects ADD CONSTRAINT pk_projects PRIMARY KEY (pnumber);
COMMIT;
本質上是刪除約束、更新表並再次添加相同的約束,但我不斷收到此錯誤:
ERROR: current transaction is aborted, commands ignored until end of transaction block
SQL state: 25P02
我如何通過刪除約束並將它們重新添加到事務中來更新信息?
先感謝您
您需要先創建主鍵,然后才能創建引用它的外鍵。 查看錯誤消息會告訴您這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.