【问题标题】:How to insert into both parent and relevant child table in Oracle db?如何在 Oracle db 中插入父表和相关子表?
【发布时间】:2020-03-31 14:59:57
【问题描述】:

假设我有 3 个表,分别称为 Person、Teacher、Student。 Teacher 和 Student 表是 Person 表的子表。

当我在 Person 表中插入新行时,它应该自动将相关数据(Salary/School)插入到相关表中。学生 ID 以 STxxxx 开头,教师 ID 以 Txxxx 开头。 我试图找出几个触发器示例,但我无法将其应用于这种情况。 如何使用 Oracle 数据库实现这一目标?或者有没有其他方法可以在数据库中创建这种关系?

【问题讨论】:

    标签: database oracle


    【解决方案1】:

    您可以使用INSERT触发器如下:

    CREATE OR REPLACE TRIGGER PERSON_TRG 
        AFTER INSERT ON PERSON
        FOR EACH ROW
    BEGIN 
        IF :NEW.ID LIKE 'ST%' THEN
            INSERT INTO STUDENT VALUES ( :NEW.ID, <SCHOOL_NAME>);
        ELSIF :NEW.ID LIKE 'T%' THEN
            INSERT INTO TEACHER VALUES (:NEW.ID, <SALARY> );
        END IF;
    END;
    /
    

    【讨论】:

    • 如何插入数据?
    • 正如你已经提到的当我在 Person 表中插入新行时,它应该自动将相关数据(Salary/School)插入到相关表中。你需要在 PERSON 表中插入数据并在相关表中插入将由触发器完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2020-07-05
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多