标题:[求助]关于Mysql中主外键约束的
取消只看楼主
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
 问题点数:0 回复次数:4 
[求助]关于Mysql中主外键约束的

我想在TEST数据库中建立三张表,其中表SC对其他两个表student,course有外键,语句如下:
drop table if exists student
drop table if exists course
drop table if exists sc
use test;
create table student(
sid int auto_increment primary key,
sno char(6) not null,
sname char(20) not null,
sage char(2) not null)type=InnoDB

create table course(
cid int auto_increment primary key,
cno char(3) not null,
cname char(10) not null)type=InnoDB

create table sc(
gid int auto_increment primary key,
sno char(6) not null,
cno char(3) not null,
foreign key(sno) references student(sno),
foreign key(cno) references course(cno))type=InnoDB

我查阅了一下资料,Mysql的一些早期版本并不支持外键,然而最近MySQL的不同版本都通过新InnoDB列表引擎支持外键
所以我把这三个表都声明为InnoDB的类型,但在建立表SC的过程中出现提示不能建立的信息:
[root@localhost:3306] ERROR 1005: Can't create table '.\test\sc.frm' (errno: 150)
请问一下这是什么原因呀?

[此贴子已经被作者于2007-9-6 9:17:00编辑过]

搜索更多相关主题的帖子: Mysql 
2007-09-06 09:15
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 
我按你的例子已经可以实现了,版主能否告诉我用InnoDB引擎怎么实现吗?

[此贴子已经被作者于2007-9-6 9:52:28编辑过]


英者自知,雄者自胜
2007-09-06 09:50
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 
往数据库中插入汉字时显示???
我在my.ini文件中找到default-character-set=latin1
我该如何设置才能使显示正常?

英者自知,雄者自胜
2007-09-06 11:06
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 
我已按版主的说法已把default-character-set设置了utf8,但我在Mysql的图形工具Mysql control center中用汉字插入时,查询数据库时也能正常显示汉字,但在eclipse中显示的却是乱码,这是什么原因呢?

英者自知,雄者自胜
2007-09-06 22:11
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 

上面我也试过了,在eclipse里面好使...
以后在建立数据库和表的过程中一定得先指定他们的编码方式,否则这各种方式变来变去都把人给整晕啦...

[此贴子已经被作者于2007-9-7 12:25:03编辑过]


英者自知,雄者自胜
2007-09-07 12:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-168017-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.305635 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved