显示某个表的约束

时间:2017-11-04 19:57:24

标签: oracle constraints sqlplus

我试图在我的表上显示约束,但由于某种原因我没有选择任何行。 (我使用的是Oracle sqlplus)

-- Table: staff
CREATE TABLE staff (
    eno   NUMBER(3,0) UNIQUE NOT NULL,
    ename VARCHAR (30),
    title VARCHAR (10) CHECK (title IN ('Doctor','Nurse')),
    PRIMARY KEY (
        eno
    )
);

INSERT INTO staff (eno, ename, title) VALUES (101, 'Zhivago', 'Doctor');
INSERT INTO staff (eno, ename, title) VALUES (102, 'Welby', 'Doctor');
INSERT INTO staff (eno, ename, title) VALUES (103, 'Jekyl', 'Doctor');
INSERT INTO staff (eno, ename, title) VALUES (104, 'Caligari', 'Doctor');
INSERT INTO staff (eno, ename, title) VALUES (105, 'Nightingale', 'Nurse');
INSERT INTO staff (eno, ename, title) VALUES (106, 'Ratchet', 'Nurse');

当我尝试描述和选择时,我得到了这个

SQL> DESCRIBE staff;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ENO                                       NOT NULL NUMBER(3)
 ENAME                                              VARCHAR2(30)
 TITLE                                              CHAR(10)

SQL> SELECT * FROM staff;
       101 Zhivago                        Doctor
       102 Welby                          Doctor
       103 Jekyl                          Doctor
       104 Caligari                       Doctor
       105 Nightingale                    Nurse
       106 Ratchet                        Nurse

6 rows selected.

然而,当我试图显示约束时,我得到了

SQL> SELECT X.constraint_name, X.constraint_type, X.status, X.validated,
  2  X.search_condition, Y.column_name, Y.position
  3  FROM user_constraints X, user_cons_columns Y
  4  WHERE X.constraint_name = Y.constraint_name
  5  AND X.table_name = 'staff';

no rows selected

我是菜鸟,所以我想确保我明白了什么是错的。提前谢谢。

1 个答案:

答案 0 :(得分:0)

非常感谢@LauDec。 正如你所说,当我用所有CAP字母更改我的表格时,它运作良好。

SQL> SELECT X.constraint_name, X.constraint_type, X.status, X.validated,
  2  X.search_condition, Y.column_name, Y.position
  3  FROM user_constraints X, user_cons_columns Y
  4  WHERE X.constraint_name = Y.constraint_name
  5  AND X.table_name = 'STAFF';
SYS_C002637566                 C ENABLED  VALIDATED                             
"ENO" IS NOT NULL                                                               
ENO                                                                             


SYS_C002637567                 C ENABLED  VALIDATED                             
title IN ('Doctor','Nurse')                                                     
TITLE                                                                           


SYS_C002637568                 P ENABLED  VALIDATED                             

ENO                                                                             
         1 
相关问题