SELECT ID, createdate
創新互聯是一家專業提供莒縣企業網站建設,專注與成都做網站、成都網站制作、成都h5網站建設、小程序制作等業務。10年已為莒縣眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。
FROM ( SELECT ID,
createdate,
RANK( ) OVER( PARTITION BY ID ORDER BY createdate DESC ) rank_value
FROM test1 )
WHERE rank_value = 2;
DELETE FROM test1
WHERE ROWID IN( SELECT row_id
FROM ( SELECT ROWID row_id,
RANK( ) OVER( PARTITION BY ID ORDER BY createdate DESC ) rank_value
FROM test1 )
WHERE rank_value 2 );
自己研究RANK()和DENSE_RANK()的區別。你或許想用DENSE_RANK()。我不知道如果有多于一行的數據擁有最大(或者第二大)的日期你想怎么辦。
你這個寫法有問題,oracle不允許這樣刪除,如果想級聯刪除有兩個方法實現:方法一:觸發器解決,方法二:修改你的外鍵設置,達到級聯刪除的目的。如果不用級聯刪除的話就只有一個表一個表的刪除,先刪除contactcomm表再刪除contact 表。
如果關聯的兩個表一條信息同時刪除,可用下列方法。
設關聯的外鍵是ID,先設定外鍵類型為級聯刪除。
alter table B add constraint fk_ID foreign key (ID) references A(ID) on delete cascade;
然后delete from A where ID=nnnn; 就可以自動刪除對應B表內容了。
設定dept表deptno列為主鍵。
alter table dept add constraint pk_deptno primary key (deptno);
在emp表deptno列上建立外鍵引用dept表deptno,指定外鍵類型為級聯刪除。
alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno) on delete cascade;
這樣刪除dept表 只需:delete from dept where city='shanghai'; 就可以自動刪除對應emp表內容。
修改你的外鍵設置,達到級聯刪除的目的,具體實現如下:
a)先查詢出EMP表和POS表中 外鍵的名稱(如果你知道 外鍵名這一步可以省略)
select CONSTRAINT_NAME,TABLE_NAME from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME in('EMP','POS');
b)刪除EMP表和POS表上的外鍵后 重新建立允許級聯刪除的外鍵模式
alter table EMP drop constraint 外鍵名;
alter table POS drop constraint 外鍵名;
alter table EMP add constraint 外鍵名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
alter table POS add constraint 外鍵名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
這樣刪除關聯刪除是自動的
只能一條一條的刪除。。先刪除子表。然后刪除主表。
一種是寫兩條sql語句。另外一種是寫觸發器。
分享名稱:oracle怎么刪除關聯 oracle刪除link
文章地址:http://vcdvsql.cn/article6/hehjog.html
成都網站建設公司_創新互聯,為您提供虛擬主機、小程序開發、服務器托管、靜態網站、品牌網站制作、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯