我有一个名为STUDENT的表,其中包含以下属性:
enroll VARCHAR(20),
name VARCHAR(50),
age INT,
fees FLOAT(6,2)
现在我想知道这个表中是否存在所有约束(如主键,唯一键,NOT NULL等)。请告诉我怎样才能得到这个?
答案 0 :(得分:1)
您可以从user_constraints
SELECT *
FROM user_constraints
WHERE table_name = 'STUDENT'
确保通过大写字母STUDENT
。 table_name区分大小写
要了解约束类型,请检查此列CONSTRAINT_TYPE
约束定义类型:
C (check constraint on a table)
P (primary key)
U (unique key)
R (referential integrity)
V (with check option, on a view)
O (with read only, on a view)
答案 1 :(得分:1)
您可以在两个表 USER_CONSTRAINTS 和 USER_CONS_COLUMNS 上使用JOIN来获取列名,约束类型和表名。
SELECT ucc.COLUMN_NAME, uc.CONSTRAINT_TYPE ,uc.TABLE_NAME
FROM USER_CONSTRAINTS uc JOIN USER_CONS_COLUMNS ucc
ON uc.CONSTRAINT_NAME = ucc.CONSTRAINT_NAME
AND uc.TABLE_NAME=ucc.TABLE_NAME
WHERE uc.TABLE_NAME='mytablename';
约束定义可以称为:
C (check constraint on a table)
P (primary key)
U (unique key)
R (referential integrity)
V (with check option, on a view)
O (with read only, on a view)
有关详细信息,请查看Oracle文档here
答案 2 :(得分:0)
尝试此View查询并指定表名以获取所有约束详细信息。
SELECT *
FROM user_cons_columns
WHERE table_name = '<YOUR_TABLE_NAME>';
或者
SELECT *
FROM user_constraints
WHERE table_name = '<your table name>'
AND constraint_name = '<your constraint name>';
答案 3 :(得分:0)
只需使用describe
describe student
但请记住你应该使用Web浏览器模式