如何从MySQL数据库中删除两个链接的行?

时间:2012-10-02 13:37:22

标签: mysql delphi foreign-keys

有人可以告诉我如何删除两个链接的行吗?

我使用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中的行。表格Picturecontacts的表格foreign key相关联。

1 个答案:

答案 0 :(得分:2)

将FK与ON DELETE CASCADE - http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

一起使用

从主表Picture中删除行时,SQL引擎会级联到详细信息表并删除它。