+ -
当前位置:首页 → 问答吧 → MySQL创建自己约束自己的表,怎样插入数据记录啊?

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

时间:2011-08-17

来源:互联网

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的约束情况;
····
那么,插入第一条记录就开始出现问题了

请高手多多指教!

作者: viewhao   发布时间: 2011-08-17

1:set FOREIGN_KEY_CHECKS=0
2:等数据插入完后再建立外键

作者: mr_mablevi   发布时间: 2011-08-17

用触发器,插入前判断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
$$
delimter ;

作者: vipper23   发布时间: 2011-08-17

引用 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……

+1

作者: shine333   发布时间: 2011-08-17