我有两张表,一个是班级和学生表
CREATE TABLE classs
(
c_id varchar(12),
c_NAME nvarchar2(50),
c_sid varchar(12)--外键
)
CREATE TABLE students
(
s_id varchar(12),
s_NAME nvarchar2(50),
s_cid varchar(12)---外键
)
---触发器
create or replace trigger tri_id
before INSERT on students
for each row
BEGIN
IF :new.s_ID=NULL THEN
SELECT c_id into :new.s_ID from calsss where c_cid=:NEW.s_sid;
END IF;
end;
我想在插入学生的时候,假如用户没有填写学生id ,但填写了外键id,就根据外键id查找到相应的班级id,把班级id赋给学生id,如果用户填写了学生id 就不让触发器自动填写了(学生表id可以重复性),小生不才只能写出上面那样了,麻烦大侠们帮帮忙,这个触发器的条件怎么去控制!
---上面的触发器写错了
create or replace trigger tri_id
before INSERT on students
for each row
BEGIN
IF :new.s_ID=NULL THEN
SELECT c_id into :new.s_ID from calsss where c_sid=:NEW.s_cid;
END IF;
end;
哦,这样还有一个毛病,就是我的s_id 是不为空的,但是上面我在插入的时候还是老提示我s_id 不能为空!