问题描述
对不起,我不确定问题来源和术语,所以情况。我正在尝试执行
CREATE TABLE `A` (
`id` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`)
);
然后
CREATE TABLE `B` (
`id` int(11) NOT NULL AUTO_INCREMENT,`a_id` int(11) NOT NULL,`n` varchar(256) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `b` (`a_id`,`n`),FOREIGN KEY (`a_id`) REFERENCES `A` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
它运行正常,但当我尝试时
CREATE TABLE `B` (
`id` int(11) NOT NULL AUTO_INCREMENT,`n` TEXT NOT NULL,FOREIGN KEY (`a_id`) REFERENCES `A` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
失败,说
ERROR 1005 (HY000): Can't create table `dbnAME`.`B` (errno: 150 "Foreign key constraint is incorrectly formed")
n VARCHAR(1024) NOT NULL
相同,但 VARCHAR(767)
和更少的工作正常。这不是索引限制,因为没有外键
CREATE TABLE `B` (
`id` int(11) NOT NULL AUTO_INCREMENT,`n`)
);
它工作正常。所以有什么问题?我正在使用 MariaDB 10.4.17。我可以确定 VARCHAR(767)
和 less 可以在其他机器/版本/MysqL 上正常工作吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)