国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

如何查看用戶表上的約束內(nèi)容?

2024-07-21 02:36:32
字體:
供稿:網(wǎng)友

  系統(tǒng)環(huán)境: 1、操作系統(tǒng):windows 2000 Server,機(jī)器內(nèi)存128M
  2、數(shù)據(jù)庫: Oracle 8i R2 (8.1.6) for NT 企業(yè)版
  3、安裝路徑:C:/ORACLE
  
   實(shí)現(xiàn)方法:
   
  SQL> conn system/manager
  SQL> grant connect,resource to test1 identified by pass1;
  SQL> conn test1/pass1
  SQL> create table a(a number PRimary key);
  SQL> create table b(a number primary key,b number not null,c number check(c>0));
  
  SQL> desc USER_CONSTRAINTS
   名稱 空? 類型
   ----------------------------------------- -------- --------------
   OWNER NOT NULL VARCHAR2(30) --用戶名
   CONSTRAINT_NAME NOT NULL VARCHAR2(30) --約束名
   CONSTRAINT_TYPE VARCHAR2(1) --約束類型
   TABLE_NAME NOT NULL VARCHAR2(30) --表名
   SEARCH_CONDITION LONG --
   R_OWNER VARCHAR2(30) --
   R_CONSTRAINT_NAME VARCHAR2(30) --
   DELETE_RULE VARCHAR2(9) --
   STATUS VARCHAR2(8) --狀態(tài)
   DEFERRABLE VARCHAR2(14) --
   DEFERRED VARCHAR2(9) --
   VALIDATED VARCHAR2(13) --
   GENERATED VARCHAR2(14) --
   BAD VARCHAR2(3) --
   RELY VARCHAR2(4) --
   LAST_CHANGE DATE --最后更改時間
  
  SQL> desc USER_CONS_COLUMNS
   名稱 空? 類型
   ----------------------------------------- -------- ----------------
   OWNER NOT NULL VARCHAR2(30) --用戶名
   CONSTRAINT_NAME NOT NULL VARCHAR2(30) --約束名
   TABLE_NAME NOT NULL VARCHAR2(30) --約束類型
   COLUMN_NAME VARCHAR2(4000) --列名
   POSITION NUMBER --
  
  SQL> col 用戶名 format a10
  SQL> col 約束名稱 format a15
  SQL> col 約束類型 format a10
  SQL> col 表名 format a10
  SQL> col 列名 format a10
  SQL> col 約束內(nèi)容 format a20
  
  SQL> select a.OWNER 用戶名,
   a.CONSTRAINT_NAME 約束名稱,
   a.CONSTRAINT_TYPE 約束類型,
   a.TABLE_NAME 表名,
   b.COLUMN_NAME 列名,
   a.SEARCH_CONDITION 約束內(nèi)容
   from USER_CONSTRAINTS a,USER_CONS_COLUMNS b
   where a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;

  
  用戶名 約束名稱 約束類型 表名 列名 約束內(nèi)容
  ---------- --------------- ---------- ---------- ---------- --------------------
  TEST1 SYS_C001239 P A A
  TEST1 SYS_C001240 C B B "B" IS NOT NULL
  TEST1 SYS_C001241 C B C c>0
  TEST1 SYS_C001242 P B A
  
  
  這樣,假如發(fā)出以下一樣的語句,會出現(xiàn)約束錯誤,可以根據(jù)顯示的約束號來查詢是違反了哪一列上的約束條件
  
  SQL> insert into b values(1,1,-1);
  insert into b values(1,1,-1)
  *
  ERROR 位于第 1 行:
  ORA-02290: 違反檢查約束條件 (TEST1.SYS_C001241)
  
  SQL> select a.OWNER 用戶名,
   a.CONSTRAINT_NAME 約束名稱,
   a.CONSTRAINT_TYPE 約束類型,
   a.TABLE_NAME 表名,
   b.COLUMN_NAME 列名,
   a.SEARCH_CONDITION 約束內(nèi)容
   from USER_CONSTRAINTS a,USER_CONS_COLUMNS b
   where a.CONSTRAINT_NAME='SYS_C001241' and a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;
  
  用戶名 約束名稱 約束類型 表名 列名 約束內(nèi)容
  ---------- --------------- ---------- ---------- ---------- --------------------
  TEST1 SYS_C001241 C B C c>0

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 林西县| 普兰店市| 镶黄旗| 丹巴县| 永顺县| 霞浦县| 陵水| 长垣县| 本溪| 安阳市| 崇阳县| 竹北市| 南涧| 彰武县| 长海县| 江都市| 饶河县| 塘沽区| 湟中县| 景洪市| 洛南县| 内黄县| 盘锦市| 五河县| 开封县| 会理县| 崇明县| 武隆县| 安仁县| 海盐县| 波密县| 利辛县| 大英县| 嘉义县| 拉孜县| 钟山县| 柳江县| 辽阳市| 万年县| 定西市| 建湖县|