【问题标题】:Display all CONSTRAINT of table in SQL显示SQL中表的所有CONSTRAINT
【发布时间】:2017-05-12 16:31:44
【问题描述】:

我想对如何在 SQL 中显示创建的表的所有约束有一些建议。

我创建了一个表:

CREATE TABLE ACCOUNT(
    USERNAME      VARCHAR(15)     UNIQUE,
    PASSWORD      VARCHAR(15),
    CONSTRAINT    ACCOUNT_UNIQUE  UNIQUE(USERNAME),
    CONSTRAINT    ACCOUNT_PK      PRIMARY KEY(USERNAME,PASSWORD)

我想发现这些约束,因为当我在 SQL 命令行中执行 / 或 RUN 命令时,我无法再显示这些约束。

有没有办法显示表 ACCOUNT 的所有约束?

【问题讨论】:

标签: sql oracle constraints


【解决方案1】:

对于甲骨文:

SELECT * 
FROM USER_CONSTRAINTS 
WHERE table_name = 'ACCOUNT';

对于我的 SQL

您可以使用DESCRIBE ACCOUNT查看表结构,包含约束,也可以使用SHOW CREATE TABLE ACCOUNT查看创建代码,其中包含约束。

另一种方式是:

SELECT COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'ACCOUNT';

【讨论】:

  • 已经检查过了,当我在命令行上执行此操作时,我得到:SQL> DESCRIBE ACCOUNT;名称空?类型 - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------------- USERNAME NOT NULL CHAR(15) PASSWORD NOT NULL CHAR(15) 但不是约束。
  • 感谢您的好意和快速回答,但是当我运行此代码时,我收到此错误:第 2 行错误:ORA-00942:表或视图不存在。我也没有使用任何图形界面,而只是使用 SQL 命令行提示符编辑器。
  • @Asynchronousx,哦,那是因为我认为您正在使用 mySQL...我现在还为 oracle 添加了 SELECT...我希望这次它可以工作:)跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多