表A的主键a_id,
表B的主键b_id,外键a_id,
A表的Sequence SA,
B表的Sequence SB,
问题:怎么把俩个表自增长关联起来呢,在插入的时候俩表保持同步,
望各位JJGG给点建议,兄弟不胜感激.
表B的主键b_id,外键a_id,
A表的Sequence SA,
B表的Sequence SB,
问题:怎么把俩个表自增长关联起来呢,在插入的时候俩表保持同步,
望各位JJGG给点建议,兄弟不胜感激.
解决方案 »
- 序列为什么要自增长啊,可以不动吗
- ORACLE 11g 支持IPV6吗?
- [提问]关于Oracle启动过程中的几个参数文件
- Linux下安装oracle-xe,密码不对,用silent方式装的,密码绝对不会输错。
- 转一个metalink的关于DBMS_SUPPORT包的说明
- 讨论一下在开发时应用存储过程提高效率的情况
- 各位帮忙写条语句。
- ----------SQL优化问题(高手请进)----------
- 能不能在一个SQL的删除语句中同时对两个表进行删除?
- PL/SQL: numeric or value error 入参varchar2型长度问题。调存过报错,请教大神。
- Oracle Select question
- 关于tuxedo8.1连接oracle9i是,客户端是bcb写的,select结果返回却是乱码,谢谢?
只要用一个Sequence
CREATE TABLE tab1 (tid NUMBER(4) PRIMARY KEY,tname VARCHAR2(20),tage NUMBER(2));
CREATE TABLE tab2 (tid NUMBER(4),ttel VARCHAR2(15),tadr VARCHAR2(30));
--插入数据
INSERT INTO tab1 VALUES(101,'zhao',22);
INSERT INTO tab1 VALUES(102,'yang',20);
INSERT INTO tab2 VALUES(101,'13761512841','AnHuiSuZhou');
INSERT INTO tab2 VALUES(102,'13563258514','AnHuiSuZhou');
--创建视图连接两张表
CREATE VIEW tab_view AS SELECT tab1.tid,tname,ttel,tadr FROM tab1,tab2 WHERE tab1.tid = tab2.tid;
--创建触发器
CREATE OR REPLACE TRIGGER tab_triggerINSTEAD OF INSERT ON tab_viewBEGIN INSERT INTO tab1(tid,tname) VALUES(:new.tid,:new.tname);INSERT INTO tab2(ttel,tadr) VALUES(:new.ttel,:new.tadr);
END;/
--现在就可以利用视图插入数据
INSERT INTO tab_view VALUES(105,'zhaoyang','13886681288','beijing');
--查看效果
SELECT * FROM tab_view;
经本人测试版./* Formatted on 2008/04/07 14:43 (Formatter Plus v4.8.8) */
--实例4---------创建触发器,利用视图插入数据-----
--创建表----------
CREATE TABLE tab1 (tid NUMBER(4) PRIMARY KEY,tname VARCHAR2(20),tage NUMBER(2));
CREATE TABLE tab2 (tid NUMBER(4),ttel VARCHAR2(15),tadr VARCHAR2(30));
--插入数据
INSERT INTO tab1 VALUES(101,'SYU',22);
INSERT INTO tab1 VALUES(102,'EHOKO',20);
INSERT INTO tab2 VALUES(101,'13761512841','SHANGHAI');
INSERT INTO tab2 VALUES(102,'13563258514','SHANGHAI');
--创建视图连接两张表
CREATE VIEW tab_view AS SELECT tab1.tid,tname,ttel,tadr FROM tab1,tab2 WHERE tab1.tid = tab2.tid;
--创建触发器
CREATE OR REPLACE TRIGGER tab_trigger
INSTEAD OF INSERT ON tab_view
BEGIN
INSERT INTO tab1(tid,tname) VALUES(:new.tid,:new.tname);
INSERT INTO tab2(tid,ttel,tadr) VALUES(:new.tid,:new.ttel,:new.tadr);
END;/
--现在就可以利用视图插入数据
INSERT INTO tab_view VALUES(105,'SYUEHOKO','1388858514','beijing');
COMMIT;
--查看效果
SELECT * FROM tab_view;
select * from tab1;
select * from tab2;