很多天前,我创建了一个包含两个表的数据库:
- 成员(member_id(PK),名称)
- 帐户(account_id(PK),member_id(FK),金额)。
所以通常DELETE
如果成员在帐户表中有余额,我不能有任何成员。在它运作良好之前。但是今天我导入了相同的脚本,我可以删除一个成员,即使成员在帐户表中有余额。
不知道怎么回事?我不记得以前的服务器版本的mysql。现在我正在运行mysql 5.5.16
,MySQL 客户端版本是mysqlnd 5.0.8-dev - 20102224 - Revision: 310735 in localhost
.
我的代码是
//account table
CREATE TABLE IF NOT EXISTS `account` (
`account_id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` int(11) NOT NULL,
`dates` date NOT NULL,
`amount` float NOT NULL,
PRIMARY KEY (`account_id`),
KEY `FK_account_1` (`member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
//member table
CREATE TABLE IF NOT EXISTS `member` (
`member_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`account_num` int(11) NOT NULL,
PRIMARY KEY (`member_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;
//and this code
ALTER TABLE `account`
ADD CONSTRAINT `FK_account_1`
FOREIGN KEY (`member_id`)
REFERENCES `member`(`member_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;