create table student
(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_sex varchar(10),
stu_age int,
stu_birthday datetime,
classes_id int not null
)ENGINE=INNODB;create table classes
(
classes_id int primary key auto_increment,
classes_name varchar(20),
teacher_id int,
foreign key (classes_id) references student(classes_id)
)ENGINE=INNODB; 我创建了第1张表,然后创建第2张表的时候他报 Can't create table '.\mydata\classes.frm' (errno: 150)错误。
我在网上找帖子看了的“说请仔细检查以下定义语句,常见的错误一般都是表类型不是INNODB、相关联的字段写错了、缺少索引等等”我在表里加上索引还是没用。谢谢那位大虾指点下了。
(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_sex varchar(10),
stu_age int,
stu_birthday datetime,
classes_id int not null
)ENGINE=INNODB;create table classes
(
classes_id int primary key auto_increment,
classes_name varchar(20),
teacher_id int,
foreign key (classes_id) references student(classes_id)
)ENGINE=INNODB; 我创建了第1张表,然后创建第2张表的时候他报 Can't create table '.\mydata\classes.frm' (errno: 150)错误。
我在网上找帖子看了的“说请仔细检查以下定义语句,常见的错误一般都是表类型不是INNODB、相关联的字段写错了、缺少索引等等”我在表里加上索引还是没用。谢谢那位大虾指点下了。
(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_sex varchar(10),
stu_age int,
stu_birthday datetime,
classes_id int not null,
unique (classes_id)
)ENGINE=INNODB; create table classes
(
classes_id int primary key ,
classes_name varchar(20),
teacher_id int,
foreign key (classes_id) references student(classes_id)
)ENGINE=INNODB;
先看一下是什么错误:
[root@localhost ~]# perror 150
MySQL error code 150: Foreign key constraint is incorrectly formed
[root@localhost ~]#
create table student
(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_sex varchar(10),
stu_age int,
stu_birthday datetime,
classes_id int not null,
key (classes_id)
)ENGINE=INNODB;create table classes
(
classes_id int primary key auto_increment,
classes_name varchar(20),
teacher_id int,
foreign key f_k (classes_id) references student(classes_id)
)ENGINE=INNODB;
mysql> create table student
-> (
-> stu_id int primary key auto_increment,
-> stu_name varchar(20),
-> stu_sex varchar(10),
-> stu_age int,
-> stu_birthday datetime,
-> classes_id int not null,
-> key (classes_id)
-> )ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)mysql>
mysql> create table classes
-> (
-> classes_id int primary key auto_increment,
-> classes_name varchar(20),
-> teacher_id int,
-> foreign key f_k (classes_id) references student(classes_id)
-> )ENGINE=INNODB;
Query OK, 0 rows affected (0.03 sec)mysql> drop table student;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
mysql> drop table classes;
Query OK, 0 rows affected (0.04 sec)mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)mysql>