在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)
);无法创建成功,提示外键这行出错,这个是<数据库系统概论>里面创建课程表的例子。谁帮忙解答下,谢谢!
解决方案 »
- 请教高手们:初次用mysql,建表1064错误
- 急求解决mysql无法远程连接问题ERROR 2003 (HY000): Can't connect to MySQL server on '202.99.67
- select count(*) vs list.size()
- 能不能在索引上添加字段?
- 请教一个mysql触发器的写法
- 中文显示乱码的问题!!!!!
- jdbc连接mysql~~~不知道为什么连不上~~痛苦
- 被锁住的表能不能自动的释放掉?
- !!!100分求解数据库复制问题~~立刻结帖
- 如何用SQL命令拷贝一个表,只拷空结构,不拷记录.
- 这两句SQL运行效率有区别吗?
- 大数据量排序情况下,如何delete之前已经select的内容?
* 使用在外键关系的域必须为索引型(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刚学,谢谢!