mysql中的外键问题
来源:百度知道 编辑:UC知道 时间:2024/05/08 07:54:11
mysql> create table sc(sno char(10) not null,cno char(10) not null,grade smallint, primary key (sno,cno),foreign key(sno) references student(sno),foreign key (cno) references course(cno));
ERROR 1005 (HY000): Can't create table '.\oa\sc.frm' (errno: 150)
我以创建了student表和course表,现在是sc表,不知错误在哪。其实我就是需要一个在mysql中可执行的有外键关系的例子,各位高手指点下。小弟在此谢谢了。
ERROR 1005 (HY000): Can't create table '.\oa\sc.frm' (errno: 150)
我以创建了student表和course表,现在是sc表,不知错误在哪。其实我就是需要一个在mysql中可执行的有外键关系的例子,各位高手指点下。小弟在此谢谢了。
出现问题的大致情况
1、外键的引用类型不一样,主键是int外键是char
2、找不到主表中 引用的列
3、主键和外键的字符编码不一致,
你的问题可能是引用类型不一样
MyISAM表格式不支持外键,mysql默认使用 MyISAM格式建表。
InnoDB表格式可以支持外键,但是需要明确定义!
mysql 不推荐使用外键,可以用程序关联,如果实在要这么做在建立表的时候选择 ENGINE=innodb 而不是 MyISAM, 后者不支持外键。在建外键表前,先保证引用的表已经建立.
create table( ...) ENGINE=innodb