我有一个简单的数据库,其中有两个表,应用程序和类别。类别取决于应用程序,因此我想在删除应用程序时删除类别。为此,我在类别表中使用了外键。它在本地服务器上工作正常,但是当我将它上传到在线服务器时,它会显示错误:
我尝试了很多,但无法解决这个问题。任何人都可以建议我如何更改我的数据库。我的数据库片段是:
CREATE TABLE `app_name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
CREATE TABLE `app_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_id` int(11) DEFAULT NULL,
`name` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `app_category` (`app_id`),
CONSTRAINT `app_category` FOREIGN KEY (`app_id`) REFERENCES `app_name` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
答案 0 :(得分:0)
请与表名交叉检查,因为它在我的机器上正常工作实际上当我们有不同的数据类型时会发生此错误
例如
id in app_name
,app_id in app_category
需要具有相同数据int (11) not null
的相同数据类型。