發現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...