oracle - 是否可以创建触发器以将表的数据插入到 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是我想通过触发器从表中自动插入的列。
解决方案
然后您可以使用在MINE表上定义的( BEFORE或AFTER)INSERT触发器,如下所示:
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;
推荐阅读
- php - 向 WooCommerce 产品变体添加后缀会被覆盖
- amazon-web-services - 限制对使用 API Gateway 作为代理的 S3 静态网站的访问
- c++ - 在 C++ 中打开 .dat 文件时出现问题
- sqlite - 如果满足某些条件,我如何有条件地停止 SQLite 脚本?
- discord - Discord.py - 标记一个随机用户
- php - 为什么没有将表单提交添加到我的 CSV 文件中?
- linux - git CRLF - Windows 和 Linux 问题
- css - 覆盖材质背景颜色 css
- javascript - 提示计算方程在第一个输出上工作,但在第二个输出上用 number() 返回 NaN
- angular - 自定义验证指令Angular 6模板驱动表单的“无提供者”?