查詢oracle資料庫約束條件以及刪除約束下內容

2021-08-27 14:27:08 字數 1565 閱讀 8120

查詢所有約束條件:

select * from user_constraints ;

constraint_type='r' 外來鍵約束

constraint_type='p' 唯一性約束

查詢外來鍵約束:

select constraint_name,table_name from user_constraints

t where constraint_type ='r' ;

查詢帶有外來鍵約束以及表名為'js_resource'的所有約束 :

select a.constraint_name,a.table_name,a.column_name

from user_cons_columns a,user_constraints b

where a.constraint_name=b.constraint_name and

b.constraint_type='r' and b.table_name='js_resource';

查詢帶有外來鍵約束以及列名為'typeid'的約束:

select a.constraint_name,a.table_name,a.column_name

from user_cons_columns a,user_constraints b

where a.constraint_name=b.constraint_name and

b.constraint_type='r' and a.column_name ='typeid';

刪除帶有外來鍵約束的表中的內容:

根據父表中主鍵的id值,先刪除子表中的對應欄位的內容,再刪除父表中對應id值的內容;

使約束失效:

alter table 表名 disable constrant 約束名;

使約束條件生效:

alter table 表名 enable constrant 約束名;

問題:在有完整性約束條件下刪除一行資料;

解決步驟:

1.查詢出該行資料所有內容;select * from user;

2.試著根據id刪除資料;delete from user where id='213';

3.如果有完整性約束,會報sql錯誤:ora-02292:違反完整性約束條件(test.fkfa236fec23b0de15)-已找到子記錄等,根據約束名和表名查詢

select * from user_cons_columns a,user_constraints b

where b.constraint_name='fkcdd5512a23b0de15' and

a.table_name='user';

4.按上述方法應該能查詢到子表名,例如我的是contact_group ;

5.查詢出user表的外來鍵userid: select * from contact_group;

6.刪除子表內容:delete from contact_group where userid='213';

7.刪除主表內容:delete from user where id='213';

至此,完整性約束條件下刪除一行資料完成。

oracle 查詢資料庫的約束條件

1 1 查詢表的所有索引 包括索引名,型別,構成列 23 select t.i.index type from user ind columns t,user indexes i where t.index name i.index name and t.table name i.table nam...

Oracle 查詢資料庫的約束條件

1 查詢表的所有索引 包括索引名,型別,構成列 select t.i.index type from user ind columns t,user indexes i where t.index name i.index name and t.table name i.table name and...

01 2資料庫約束條件

約束的分類 1 主鍵 pk primary key 2 唯一約束 uk unique key 3 外來鍵約束 fk foreign key 4 非空約束 nn not null 5 檢查約束 ck check 6 預設值約束 default ps 1 pk uk nn 唯一且非空 2 實現方法 co...