mysql中外键约束的问题

装作很满意 2012-10-19 05:40:40
现在我要建立以下这张表(Course):
Cno Cname Cpno Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 1 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
7 PASCAL语言 6 4
其中属性Cpno受到Cno的约束

我在书上看到的语句是
CREATE TABLE Course(
Cno char(4) primary key,
Cname char(40),
Cpno char(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)/*完整性约束*/
);
执行上面的语句没问题,但是在插入第一条元组时提示Cpno这个属性受到约束不能插入,这个我能理解。
于是我换了一种方式,就是在创建表时不加约束条件,在把所有元组逐条插入完之后再增加约束说明,现在问题来了,不知道增加约束的语句是什么,在网上查了很多好像也不正确。求各位大神解答
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuanyuan5201314 2012-10-20
  • 打赏
  • 举报
回复
constraint Cpno_fk(外键名称) foreign key (Cpno) references Course(Cno);
ACMAIN_CHM 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

试过这个了,出错的。
Cannot add or update a child row: a foreign key constraint fails('s_t'.'#sql-160_1',CONSTRAINT '#sql-160_1_ibfk_1' FOREIGN KEY ('Cpno') REFERENECS 'Course'('Cno'))
引用 1 楼 的回复:

SQL c……
[/Quote]你的表中有不符合约束的记录。
装作很满意 2012-10-20
  • 打赏
  • 举报
回复
试过这个了,出错的。
Cannot add or update a child row: a foreign key constraint fails('s_t'.'#sql-160_1',CONSTRAINT '#sql-160_1_ibfk_1' FOREIGN KEY ('Cpno') REFERENECS 'Course'('Cno'))
[Quote=引用 1 楼 的回复:]

SQL code
alter table Course add FOREIGN KEY (Cpno) REFERENCES Course(Cno)



这个语法MYSQL的官方免费手册上就有。
[/Quote]
mysdzlt2007 2012-10-19
  • 打赏
  • 举报
回复
ALTER TABLE `Course` ADD CONSTRAINT `self_f` FOREIGN KEY (`Cpno`) REFERENCES `Course` (`Cno`);
ACMAIN_CHM 2012-10-19
  • 打赏
  • 举报
回复
alter table Course add FOREIGN KEY (Cpno) REFERENCES Course(Cno)



这个语法MYSQL的官方免费手册上就有。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧