MySQL创建自己约束自己的表,怎样插入数据记录啊?

viewhao 2011-08-17 04:13:03
create table Course
(
Cno char(4) PRIMARY key,
Cname char(40) ,
Cpno char(4) default null,
Ccredit smallint,
FOREIGN key (Cpno) references Course(Cno)
);
同一条记录中Cpno和Cno取值不能相同,而Cno又不能取NULL
每插入一条记录时都要检查Cpno的约束情况;
····
那么,插入第一条记录就开始出现问题了

请高手多多指教!
...全文
158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2011-08-18
  • 打赏
  • 举报
回复
SET FOREIGN_KEY_CHECKS=0
简单一些
WWWWA 2011-08-18
  • 打赏
  • 举报
回复
SET FOREIGN_KEY_CHECKS=0
简单一些
WWWWA 2011-08-18
  • 打赏
  • 举报
回复
SET FOREIGN_KEY_CHECKS=0
简单一些
ACMAIN_CHM 2011-08-17
  • 打赏
  • 举报
回复
先SET FOREIGN_KEY_CHECKS=0吧,先种植一个值,然后再插入。
shine333 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vipper23 的回复:]

用触发器,插入前判断cno和cpno,如果相同,人为制造一个错误使COURSE插入失败
SQL code
delimiter $$
create trigger tr_tb before insert on course for each row
begin
if new.cno=new.cpno then
insert into tb select 1;
end if;
end
$$
de……
[/Quote]
+1
vipper23 2011-08-17
  • 打赏
  • 举报
回复
用触发器,插入前判断cno和cpno,如果相同,人为制造一个错误使COURSE插入失败
delimiter $$
create trigger tr_tb before insert on course for each row
begin
if new.cno=new.cpno then
insert into tb select 1;
end if;
end
$$
delimter ;
小小小小周 2011-08-17
  • 打赏
  • 举报
回复
1:set FOREIGN_KEY_CHECKS=0
2:等数据插入完后再建立外键

56,677

社区成员

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

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