【发布时间】:2010-11-30 05:57:43
【问题描述】:
我试图在 MySQL 中创建一个带有两个外键的表,这两个外键引用了另外 2 个表中的主键,但是我收到了 errno: 150 错误,它不会创建表。
这是所有 3 个表的 SQL:
CREATE TABLE role_groups (
`role_group_id` int(11) NOT NULL `AUTO_INCREMENT`,
`name` varchar(20),
`description` varchar(200),
PRIMARY KEY (`role_group_id`)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `roles` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50),
`description` varchar(200),
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB;
create table role_map (
`role_map_id` int not null `auto_increment`,
`role_id` int not null,
`role_group_id` int not null,
primary key(`role_map_id`),
foreign key(`role_id`) references roles(`role_id`),
foreign key(`role_group_id`) references role_groups(`role_group_id`)
) engine=InnoDB;
任何帮助将不胜感激。
【问题讨论】:
-
您能否发布错误输出并告诉我们哪个命令(三个)导致错误?
-
auto_increment周围的反引号是怎么回事?那是无效的。 Auto_increment 是关键字,而不是标识符。
标签: mysql foreign-keys mysql-error-150