oracle主鍵插入重複資料

2021-08-20 21:01:35 字數 1030 閱讀 8662

發現oracle中已經設定了主鍵,但是還能插入重複資料,也是奇葩,後來發現主鍵雖然設定,但是沒有啟動,這才導致可以插入重複主鍵資料

查詢出沒有啟用主鍵的表

select a.constraint_name,b.column_name,a.table_name,a.status 

from user_constraints a,user_cons_columns b

where a.constraint_type = 'p'

and a.status='disabled'

and b.column_name='id';

啟用sys_config 表主鍵

alter

table sys_config enable primary

key;

停用sys_config 表主鍵

alter

table sys_config disable primary

key;

批量啟用主鍵

select

'alter table '||table_name|| ' enable primary key;'

from

(select a.constraint_name,b.column_name,a.table_name,a.status

from user_constraints a,user_cons_columns b

where a.constraint_type = 'p'

and a.status='disabled'

and b.column_name='id');

修改失敗查詢是哪個資料已經重複了

select * from (select

count(*) num,id from sys_config group

by id )where num>1

Oracle建立主鍵時處理重複資料的程式

v index 為主鍵語句 tablename 為表名 written by wonder modified by create or replace procedure prc delete v index in varchar2,tablename in varchar2 is v sql va...

Oracle刪除重複資料

在oracle中,有個隱藏了自動rowid,裡面給每條記錄乙個唯一的rowid,我們如果想保留最新的一條記錄,我們就可以利用這個字段,保留重複資料中rowid最大的一條記錄就可以了。下面是查詢重複資料的乙個例子 select a.rowid,a.from 表名 a where a.rowid sel...

ORACLE刪除重複資料

我們可能會出現這種情況,某個表原來設計不周全,導致表裡面的資料資料重複,那麼,如何對重複的資料進行刪除呢?重複的資料可能有這樣兩種情況,第一種時表中只有某些字段一樣,第二種是兩行記錄完全一樣。一 對於部分字段重複資料的刪除 先來談談如何查詢重複的資料吧。下面語句可以查詢出那些資料是重複的 selec...