sql - Oracle:触发器将值插入另一个表,其中包含一个额外的自动增量主键列
问题描述
我有一张 Oracle 表说
Table1
(
roll_number,
myTimestamp
)
我有另一个 Oracle 表
Table2
(
roll_number,
myTimestamp,
recordid --> this is supposed to be an auto increment primary key
)
我想要的是一个触发器,它也将插入的记录插入其中,Table1
但Table2
附加的主键整数列recordid
会自动递增和插入。我可以在没有 Table2
使用触发器的附加主键列约束的情况下插入记录,但是当我尝试这个附加列时,它会出现问题。
我尝试创建一个自动递增序列(例如MySeq
)并尝试插入以创建触发器
create trigger MyTrigger
after insert on Table1
for each row
begin
insert into Table2 values ( :new.roll_number,:new.myTimestamp,select MySeq.nextval into :new.recordid from dual );
end;
但没有运气。提前致谢
解决方案
请试试这个:
在 Table1 上为每一行插入后创建或替换触发器 MyTrigger
声明 v_recordid 整数;
BEGIN select MySeq.nextval into v_recordid from dual;
插入 Table2 (roll_number,myTimestamp,recordid) 值 (:new.roll_number,:new.myTimestamp,v_recordid); 结尾;
推荐阅读
- apache-spark - Py4JJavaError:org.apache.spark.SparkException:在 awaitResult 中抛出异常
- php - 如何在 laravel 5.6 中下载 pdf 文件?
- javascript - 更改变量名后我的代码停止运行
- php - 用于 levelRange 的 Log4php 单独输出不起作用
- javascript - 在 JavaScript 中使用 for 循环的基于条件的迭代
- python-3.x - Celery 动态定义工作流程
- scala - 基于火花结构化流中的多个条件从另一列更新列值
- sql - 将 Access 查询的结果保存到 SQL Server
- django - 尽管安装了 heroku 中没有名为 PIL 的模块
- ios - 将 UIView 更新为与另一个 UIView 相同的高度