2013-07-24 43 views
0

我被MySQL查詢困住了。我在我的DB 2個表: 1設備 2任務在已有列上添加更新/刪除選項

他們在關係1:1我有列「DEVICE_ID」的任務表和設備表「TASK_ID」。當我使用給定的id_task刪除設備行時,我想使整個任務的行被刪除。 此外我想設置id_task爲null,一旦我刪除任務行與給定的id_device。我很確定有ALTER TABLE ALTER COLUMN statemets的可能性,但是我得到了#1064 - 你的SQL語法已經有30分鐘的錯誤了。 有什麼建議嗎? 順便說一句,我有一些phpmyadmin,但無法找到這些選項,可能無法從UI。

回答

0

您可以使用外鍵(假設你正使用InnoDB):

ALTER TABLE device 
    ADD FOREIGN KEY 
    (task_id) 
    REFERENCES task (task_id) 
    ON DELETE SET NULL 

ALTER TABLE task 
    ADD FOREIGN KEY 
    (device_id) 
    REFERENCES device (device_id) 
    ON DELETE CASCADE 

在這裏看到的詳細介紹:

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

+0

是的,但我已經有ForeignKeys設置+我的數據庫是飽滿的。所以我想只是改變從上述提到的選項。不想創建新列 – Mike882

+0

您無法修改外鍵約束 - 您必須將其刪除並重新添加。 – noz

+0

好的,感謝您的信息!乾杯! – Mike882

相關問題