0

我坚持使用 MySQL 查询。我的数据库中有 2 个表:1 个设备 2 个任务

它们是 1 对 1 的关系。我在任务表中有列“device_id”,在设备表中有“task_id”列。当我删除具有给定 id_task 的设备行时,我想删除整个任务的行。此外,一旦我删除具有给定 id_device 的任务行,我想将 id_task 设置为 null。我很确定 ALTER TABLE ALTER COLUMN statemets 有可能,但我得到 #1064 - 你的 SQL 语法错误已经有 30 分钟了。有什么建议么?顺便说一句,我有一些 phpmyadmin 但找不到这些选项,可能无法从 ui 获得。

4

1 回答 1

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

于 2013-07-24T11:36:03.360 回答