何日前にも、2つのテーブルを持つデータベースを作成しました。
- member(member_id(PK)、name)
- account(account_id(PK)、member_id(FK)、amount)。
したがって、通常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;