在mysql创建如下表的时候,提示错误,请大家帮忙看看,谢谢!mysql>create table Course(
Cno char(4) primary key,
Cname CHAR(40),
Cpno char(4),
Ceredit snallint,
FOREIGN KEY Cpno REFERENCES Course(Cno)
);无法创建成功,提示外键这行出错,这个是<数据库系统概论>里面创建课程表的例子。谁帮忙解答下,谢谢!
Cno char(4) primary key,
Cname CHAR(40),
Cpno char(4),
Ceredit snallint,
FOREIGN KEY Cpno REFERENCES Course(Cno)
);无法创建成功,提示外键这行出错,这个是<数据库系统概论>里面创建课程表的例子。谁帮忙解答下,谢谢!
* 使用在外键关系的域必须为索引型(Index)。
* 使用在外键关系的域必须与数据类型相似。
mysql> create table Course(
-> Cno char(4) primary key,
-> Cname char(40),
-> Cpno char(4),
/*表内创建索引*/
-> INDEX using BTREE (Cpno),
-> Ceredit smallint,
-> foreign key Cpno references Course(Cno))
-> ENGINE=InnoDB;
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'references Course(Cno))
engine=InnoDB; 谢谢楼上2位的回复,我根据WWWWA的意见,参考了mysql官方手册,但是还是没成功。错误提示如上所示,请帮忙看看,谢谢!
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
/*表内创建索引*/
INDEX USING BTREE (Cpno),
Ceredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno))
ENGINE=INNODB;
Cno char(4) primary key,
Cname char(40),
Cpno char(4),
INDEX using BTREE (Cpno),
Ceredit smallint,
foreign key (Cpno) references Course(Cno)
) ENGINE=InnoDB;
语法说明上有这个()
当我在创建SC表的时候create table SC(
Sno char(7),
index using btree (Sno),
Cno char(4),
index using btree (Cno),
Grade smallint,
primary key(Sno,Cno),
foreign key (Sno) references student(Sno),
foreign key (Cno) references Course(Cno))
engine=Innodb;这个提示了"cant`t create table databook.sc errno 150"
当我将Sno char(7)改为Sno char(9)的时候,可以创建成功,难道char(7)和char(9)不是同一种数据类型?mysql刚学,谢谢!