现有一张老师学生表(tb_tea_cou),由于业务需要,需把老师学生表tb_tea_stu拆分成两张表(tb_tea、tb_cou),并把记录insert到这两张子表中(tb_tea、tb_cou为关联的两张表)。

表结构如下:
tb_tea_cou(
   id, //pk
   name, //任课老师
   zc, //职称
   course //课程
),

老师表:
tb_tea(
   tid, //pk
   tname, //任课老师
   zc //职称
),

课程表:
tb_cou(
   cid, //pk
   course, //课程
   tea_id //fk,tb_tea id
)

插入数据

INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '张三', '教师', '语文');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '李四', '教师', '数学');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '王五', '教师', '英语');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '老刘', '教师', '历史');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '小王', '教师', '政治');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '杜甫', '教师', '生物');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '李白', '教师', '化学');
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '韩愈', '教师', '物理');
select * from tb_tea_cou;

思路,使用存储过程,插入tb_tea表之后,select max(tid) from tb_tea; 得到刚刚插入的序列的最大值,在后面将这个值插入tb_cou表中。

--创建存储过程
SET serveroutput ON;
CREATE OR REPLACE PROCEDURE proce_insert_tab(error_msg OUT VARCHAR2) ISv_id NUMBER(9, 2);
BEGINFOR cur IN (select * FROM tb_tea_cou) LOOPSELECT hibernate_seq.nextval INTO v_id FROM dual;INSERT INTO tb_tea(tid, tname, zc) VALUES (v_id, cur.name, cur.zc);INSERT INTO tb_cou(cid, course, tea_id) VALUES (hibernate_seq.nextval, cur.course, v_id);COMMIT;error_msg:='添加成功';END LOOP;
EXCEPTION WHEN OTHERS THEN ROLLBACK;error_msg:='添加失败';RAISE_APPLICATION_ERROR(-20010, 'ERROR:插入数据有误!');
END;
/--调用存储过程
var error_msg VARCHAR2(200);
exec proce_insert_tab(:error_msg);   SELECT * FROM tb_tea;
SELECT * FROM tb_cou;
SELECT t.tid, t.tname, t.zc, c.course FROM tb_tea t, tb_cou c WHERE t.tid=c.tea_id
delete from tb_tea;
delete from tb_cou;

转载于:https://www.cnblogs.com/linjiqin/p/3152554.html

oracle insert两个关联表相关推荐

  1. oracle两表交集查询,Oracle对两个数据表交集的查询

    正在看的ORACLE教程是:Oracle对两个数据表交集的查询. Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大.灵活和复杂的系统,据说,在使用oracle时应有这样的思想 ...

  2. java后台两个表关联查询_简单界面+JAVA后台+数据库实现页面对数据库的两张关联表操作...

    前几天写了简单的从页面对数据库进行的操作,下面对该功能进行升级,操作两张相关联的表:上次是对新闻类型的修改,我在这里就不重复了,可以查看我之前的博客, 首先从页面说起: 页面部分: 页面部分我用了10 ...

  3. spring boot项目实现向两张关联表同时插入数据到Mysql数据库

    一.举个例子来了解一下: 教师上课发布一条签到信息,这个教师的所有学生都会收到一条待签到的信息. 教师发布上课信息表如下:表一 学生签到表如下:表二 表一中的id和表二中的course_id作为关联条 ...

  4. oracle查询约束的关联表,几种容易查询Oracle中表的约束信息

    1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.ind ...

  5. 一次性获取多个oracle序列的值,实现关联表多数据的批量insert

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 业务 要求批量导入不小于10W条数据到 user 表,但是user表在 insert  每条数据的同 ...

  6. ASP.NET两个关联的表的增删查改

    两个关联的表的增删查改 主要用了参数 SqlParameter,事务执行多条sql 表Users ID         int Name   varchar 表UsersDetail ID       ...

  7. 关联表多数据的批量insert (批量导入,测试19W条数据用时46秒)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.业务需求 :作多个批量导入 ,根据业务不同,每条数据导入前作各种验证,             ...

  8. oracle批量更新数据从另一表_【案例】Oracle t-sql 更新大批量数据 更新两张大数据表案例...

    天萃荷净 t-sql 更新大批量数据,有两张很大的表,写了一个存储过程处理(加工数据然后插入到一张新表中),因为一次性处理数据量很大,会导致tempdb等资源被耗尽,为了解决这个问题,每次输入两个参数 ...

  9. 两表关联更新 mysql_MySQL多表更新(关联表更新)

    在开发过程中,有时会遇到需要将某张表的字段值根据条件动态地更新到另一张表字段的问题,即通过一张表的字段修改另一张关联表中的内容.比如,存在两张表A(表名:test_a).B(表名:test_b),他们 ...

最新文章

  1. NYOJ 79 拦截导弹
  2. Lec6-待学习的堆排序
  3. Dapr + .NET 实战(八)服务监测
  4. 粉丝提问:有没有人会做彩虹表
  5. python记录日志_5分钟内解释日志记录—使用Python演练
  6. 【学习笔记】第二章——调度算法:先来先服务FCFS、短作业优先SJF、高响应比HRRN
  7. JavaScript的重载和递归
  8. Linux主机无法安装软件故障排查
  9. indexed true mysql_一行代码,搞定浏览器数据库 IndexedDB
  10. 矩阵分解在推荐系统中的应用:NMF和经典SVD实战
  11. 四、BDB JE学习(对java中内置对象的存储)
  12. [论离职]走的人不少,来的人更多
  13. Appium工具使用教程
  14. jQuery表单提交
  15. stm8s stvd 编译出错
  16. Django博客项目(一)—— 注册和登录页面
  17. html颜色代码错误,HTML颜色代码表
  18. linux中/etc/hosts文件的含义
  19. Qt 新建文件夹并在该文件夹下新建文件
  20. vue3中使用elementui组件

热门文章

  1. 70后存款100万,有房有车无贷款,每月租金1.5万,可以退休吗?
  2. 杭州刚公布完摇号卖房新政,隔天就来个百亿地王,大家怎么看?
  3. 你以为有白金卡就很牛逼?错!
  4. Photoshop常用快捷键
  5. 七值逻辑与基本数据类型
  6. 你是否做好了代码的备份?
  7. python类定义学生信息_Python学生信息管理系统(注释最详细,小白都看的懂)
  8. keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案
  9. python matplotlib_Python の Matplotlib
  10. python 双向链表_Python实现双向链表