首页 > 解决方案 > 是否可以创建触发器以将表的数据插入到 Oracle 中的另一个表中?

问题描述

我正在学习 Oracle 并且我有一个查询,如果像标题中所说的那样,创建一个触发器,可以将数据从一个表插入到另一个表中。我该怎么做?如果我有这个表:

create table personal(
    id_person);

create table mine(
    id_mine,
    name_mine,
    pay);

create table trip(
    id_trip,
    id_person,
    name_mine,
    date_trip);

create table assignment(
    id_assig,
    id_trip,
    pay);

赋值中的列pay是想通过触发器从表中自动插入的列。

标签: oracleplsqldatabase-trigger

解决方案


然后您可以使用在MINE表上定义的( BEFOREAFTERINSERT触发器,如下所示:

CREATE OR REPLACE TRIGGER trg_bi_ins_mine
BEFORE INSERT ON mine
FOR EACH ROW 
DECLARE
  v_assigID assignment.id_assig%type := seq_assig.nextval;
  v_tripID  assignment.id_trip%type  := seq_trip.nextval;
BEGIN         
    insert into assignment( id_assig, id_trip, pay)
    values( v_assigID, v_tripID, :new.pay);
 -- this pay in (:new.pay) comes from inserted column value of the table "mine"
END;

推荐阅读