我使用以下sql创建名为app_info的表:
@H_502_12@
MyISAM存储引擎不支持外键约束.解析约束但忽略忽略.
CREATE TABLE IF NOT EXISTS `app_info` ( `_id` int(11) NOT NULL AUTO_INCREMENT,`app_name` varchar(50) DEFAULT NULL,`app_owner` varchar(50) DEFAULT NULL,`last_update` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
我使用以下sql创建名为tab_info的表:
CREATE TABLE `myDB`.`tab_info` ( `_id` INT NOT NULL AUTO_INCREMENT,`app_id` INT NOT NULL,`tab_title` VARCHAR(15) NOT NULL,PRIMARY KEY (`_id`),UNIQUE INDEX `app_id_UNIQUE` (`app_id` ASC),INDEX `app_tab_key` (`app_id` ASC),CONSTRAINT `app_tab_key` FOREIGN KEY (`app_id` ) REFERENCES `myDB`.`app_info` (`_id` ) ON DELETE CASCADE ON UPDATE CASCADE);
要解决您的问题,请使用InnoDB引擎(对于两个表).
CREATE TABLE ( ... ) ENGINE = InnoDB ... ;
您可以更改存储引擎,而不是删除表并重新创建它们:
ALTER TABLE myDB.app_info ENGINE = InnoDB; ALTER TABLE myDB.tab_info ENGINE = InnoDB;
更改引擎后,您需要再次添加外键约束.