2011-08-19 57 views
2

我試圖刪除兩個表中的一行數據。我有以下的代碼是不工作:跨兩個表刪除整行(內部連接?)

DELETE 
FROM PROCESS_OWNER.ARTIFACTS 
JOIN PROCESS_OWNER.ARTIFACT_METADATA 
ON ARTIFACTS.ARTIFACT_ID = ARTIFACT_METADATA.ARTIFACT_ID 
WHERE ARTIFACT_LABEL = 'getTest' 

我得到的錯誤信息:

「SQL命令不能正確地結束」

會很感激一些幫助,因爲我我正在努力與甲骨文握手。

回答

1

你不能通過連接來完成。 DELETE FROM必須定位到一個表。你可以這樣做:

DELETE FROM PROCESS_OWNER.ARTIFACT_METADATA WHERE ARTIFACT_ID = (SELECT ARTIFACT_ID FROM PROCESS_OWNER.ARTIFACTS WHERE ARTIFACT_LABEL = 'getTest'); 
DELETE FROM PROCESS_OWNER.ARTIFACTS WHERE ARTIFACT_LABEL = 'getTest'; 
+1

謝謝你的幫助 - 但是,我發現了大約關於CASCADE DELETE,結束了使用,而不是這樣我就可以有一個刪除查詢 – rwb

+1

@Ryan - 是這樣的作品,但它也非常危險,因爲它可以刪除你沒有意識到它正在做的事情。不是我親自使用的東西。 – Tridus