oracle - 查看表的内容和约束
问题描述
我正在处理这个作业问题,它在问我:
TEMP_CUST
从现有表创建名为 ( ) 的表Customers
TEMP_CUST
查看表的内容和约束
到目前为止我所做的是我已经创建了我的表,没有向表添加任何约束并使用命令TEMP_CUST
查看表。DESC
这是创建表的代码
CREATE TABLE TEMP_CUST
AS
(SELECT
CUSTOMER#, LASTNAME,
FIRSTNAME, ADDRESS, CITY,
STATE, ZIP, REFERRED,
REGION, EMAIL
FROM
CUSTOMERS);
DESC TEMP_CUST;
现在我已经完成了,我想查看表的约束。我用过这个命令,但不确定它是否正确。
SELECT *
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TEMP_CUST';
解决方案
我用过这个命令,但不确定它是否正确。
您还没有说为什么您认为它不正确,所以我们必须猜测您怀疑的原因。也许是因为您获得的约束集小于原始 CUSTOMERS 表的约束集?
那是对的。当我们使用 CREATE TABLE ... AS SELECT 语句创建一个新表,其中包含原始表的投影、列名和数据类型(假设是一个普通的 SELECT 子句)和数据(由 WHERE 子句确定,如果有的话)。但是,创建的唯一约束是主键列和任何其他强制列上的 NOT NULL 约束。新表没有主键、外键或检查约束。我们必须明确地创建这些。
因此,这个查询...
SELECT * FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TEMP_CUST';
...返回的约束可能比您预期的要少。
推荐阅读
- swift - 非标称类型不支持显式初始化
- c++ - 为什么我不能将 std::function 用作 std::set 或 std::unordered_set 值类型?
- java - 在框架的中心绘制一个填充颜色的正方形,但用户决定颜色
- mockito - Mockito 模拟回调接口
- python - "Type 'lxml.etree._ElementUnicodeResult' cannot be serialized"
- c++ - 专用结构/类中未识别的数据成员
- django - 使用过滤器将对象传递给详细视图(Django)
- javascript - Log Javascript execution output inside Chrome/Firefox
- heroku - Heroku Container multi-stage build failing to find file
- javascript - logic that works on every browser/device except samsung internet