0

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

我使用 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 应用程序中,我有Delete按钮。当我在我的 DBGrid 上找到一些联系人并按下Delete按钮时,我只能从表contacts中删除联系人,我还想删除联系人图片。

我想从表中删除行和表中contacts的行Picture。表用Picture链接到表。contactsforeign key

4

1 回答 1

2

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

当您从主表中删除一行时,PictureSQL 引擎级联到详细表并在那里删除。

于 2012-10-02T13:55:23.223 回答