2012-06-18 52 views
0

我想在我的數據庫上配置CLIENTS表,如果從EMP表中刪除一個員工,任何關聯客戶端都會自動從CLIENTS表中刪除。在客戶端表上級聯刪除查詢

這是我到目前爲止嘗試過的。

ALTER TABLE clients 
MODIFY empno REFERENCES emp(empno) ON DELETE CASCADE 

不幸的是這將返回附近的「修改」:每次我嘗試運行它時語法錯誤。任何想法出了什麼問題?

在此先感謝。

+0

根據SQLite手冊,您不能添加一個外鍵一旦創建表:http://www.sqlite.org/lang_altertable.html –

回答

3

使用此:

ALTER TABLE Clients 
    ADD CONSTRAINT `Client_1` 
    FOREIGN KEY empno REFERENCES emp(empno) ON DELETE CASCADE; 

UPD:

根據這一post,有沒有辦法可以做到這一點SQLite中。因此,我的建議是這樣的:

  • 創建一個臨時表。
  • 將所有信息複製到那裏。
  • 刪除原始表並使用外鍵創建它。
  • 複製臨時表中的所有信息並刪除臨時表。

當然,如果客戶表現在是空的,您可以簡單地刪除它並重新創建。

+0

我在SQLite中使用此命令,但它不斷返回語法錯誤**接近約束**。 – methuselah

+0

你不能在SQLite中輕鬆做到這一點,看到我的答案更新 –