oracle insert两个关联表
生活随笔
收集整理的這篇文章主要介紹了
oracle insert两个关联表
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
現(xiàn)有一張老師學(xué)生表(tb_tea_cou),由于業(yè)務(wù)需要,需把老師學(xué)生表tb_tea_stu拆分成兩張表(tb_tea、tb_cou),并把記錄insert到這兩張子表中(tb_tea、tb_cou為關(guān)聯(lián)的兩張表)。
表結(jié)構(gòu)如下:
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
)
插入數(shù)據(jù)
INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '張三', '教師', '語(yǔ)文'); INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '李四', '教師', '數(shù)學(xué)'); INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '王五', '教師', '英語(yǔ)'); 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, '李白', '教師', '化學(xué)'); INSERT INTO tb_tea_cou (ID, name, zc, course) VALUES (hibernate_seq.nextval, '韓愈', '教師', '物理'); select * from tb_tea_cou;思路,使用存儲(chǔ)過(guò)程,插入tb_tea表之后,select max(tid) from tb_tea; 得到剛剛插入的序列的最大值,在后面將這個(gè)值插入tb_cou表中。
--創(chuàng)建存儲(chǔ)過(guò)程 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:插入數(shù)據(jù)有誤!'); END; /--調(diào)用存儲(chǔ)過(guò)程 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;?
轉(zhuǎn)載于:https://www.cnblogs.com/linjiqin/p/3152554.html
總結(jié)
以上是生活随笔為你收集整理的oracle insert两个关联表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 专治放不下手机 效率应用iHour新版发
- 下一篇: Google Map API 学习三