有人可以告诉我如何删除两个链接的行吗?
我使用Delphi 2007和MySQL。
我有一个包含两个表的数据库:
CREATE TABLE `Picture`.`Picture` (
`ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`IMG` LONGBLOB,
PRIMARY KEY (`ID`)
)
ENGINE = InnoDB;
CREATE TABLE `contacts` (
`ID` int(10) unsigned NOT NULL auto_increment,
`FirstName` varchar(45) NOT NULL,
`LastName` varchar(45) NOT NULL,
`Phone` varchar(45) default NULL,
`PICID` int(10) unsigned default NULL,
PRIMARY KEY (`ID`),
KEY `FK_contacts_1` (`PICID`),
CONSTRAINT `FK_contacts_1` FOREIGN KEY (`PICID`) REFERENCES `picture` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
在我的Delphi应用程序中,我有删除按钮。当我在DBGrid上找到一些联系人并按删除按钮时,我只能删除表contacts
中的联系人,我还想删除联系人图片。
我想删除表contacts
中的行和表Picture
中的行。表格Picture
与contacts
的表格foreign key
相关联。
答案 0 :(得分:2)
将FK与ON DELETE CASCADE
- http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
从主表Picture
中删除行时,SQL引擎会级联到详细信息表并删除它。