我錯過了如何創建f_t2
需要在一個點上添加到t1
。所以我添加並填充了列f_t2
,它工作。
ALTER TABLE t1
ADD (f_t2 number);
update t1 set f_t2 = (select s_id from t2 where t2.title = t1.title);
運行以下步驟會產生所需的結果。
drop table t1;
create table t1 (id number,name varchar2(100), title varchar2(100));
insert into t1 values (1, 'abc', 'X1');
insert into t1 values (2, 'xyz', 'X1');
insert into t1 values (3, 'qwe', 'X1');
insert into t1 values (4, 'asd', 'X2');
insert into t1 values (5, 'pqr', 'X2');
drop table t2;
create table t2 AS SELECT distinct (title) FROM t1;
ALTER TABLE t2
ADD (s_id number,column1 varchar2(10),column2 varchar2(20));
drop sequence s_seq;
create sequence s_seq
start with 1
increment by 1
nomaxvalue;
update t2 set s_id=s_seq.nextval;
alter table t2 add primary key (s_id);
ALTER TABLE t1
ADD (f_t2 number);
update t1 set f_t2 = (select s_id from t2 where t2.title = t1.title);
select * from t1;
select * from t2;
ALTER TABLE t1
add constraint fk_s_id
FOREIGN KEY (f_t2)
REFERENCES t2(s_id) on delete cascade;
delete from t2 where title='X2';
select * from t1;
select * from t2;
輸出:
table T1 dropped.
table T1 created.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
table T2 dropped.
table T2 created.
table T2 altered.
sequence S_SEQ dropped.
sequence S_SEQ created.
2 rows updated.
table T2 altered.
table T1 altered.
5 rows updated.
ID NAME TITLE F_T2
---------- ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- ----------
1 abc X1 1
2 xyz X1 1
3 qwe X1 1
4 asd X2 2
5 pqr X2 2
TITLE S_ID COLUMN1 COLUMN2
---------------------------------------------------------------------------------------------------- ---------- ---------- --------------------
X1 1
X2 2
table T1 altered.
1 rows deleted. --- DELETE in T2 affects T1
-- THIS IS T1:
ID NAME TITLE F_T2
---------- ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- ----------
1 abc X1 1
2 xyz
X1 1
3 qwe X1 1
-- THIS IS T2:
TITLE S_ID COLUMN1 COLUMN2
---------------------------------------------------------------------------------------------------- ---------- ---------- --------------------
X1 1
來源
2013-10-21 18:56:06
hol
thanks..but問題是部分solved.I已經有表T1 populated..so從T2插件不會回報爲T1。刪除工作但是。 –