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中可执行的有外键关系的例子,各位高手指点下。小弟在此谢谢了。

出现问题的大致情况

1、外键的引用类型不一样,主键是int外键是char

2、找不到主表中 引用的列

3、主键和外键的字符编码不一致,

你的问题可能是引用类型不一样

MyISAM表格式不支持外键,mysql默认使用 MyISAM格式建表。
InnoDB表格式可以支持外键,但是需要明确定义!

mysql 不推荐使用外键,可以用程序关联,如果实在要这么做在建立表的时候选择 ENGINE=innodb 而不是 MyISAM, 后者不支持外键。在建外键表前,先保证引用的表已经建立.
create table( ...) ENGINE=innodb