查詢所有約束條件:
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...