我正在处理这个分配问题,它问我:
SELECT * FROM 01users
INNER JOIN 01modules ON 01modules.Modules_UserID = 01users.ID
INNER JOIN 01articles ON 01modules.ID = 01articles.ModuleID
WHERE User = '$user' AND ID = '$moduleid'
ORDER BY WeekID ASC
中创建名为(SELECT t1.ID
FROM 01users AS t1
INNER JOIN 01modules ON 01modules.Modules_UserID = t1.ID
INNER JOIN 01articles ON 01modules.ID = 01articles.ModuleID
WHERE User = '$user' AND ID = '$moduleid'
ORDER BY WeekID ASC
)的表TEMP_CUST
表的内容和约束到目前为止,我要做的就是创建自己的表,没有向表Customers
添加任何约束,并使用TEMP_CUST
命令查看了该表。
这是用于创建表的代码
TEMP_CUST
现在,我已经完成了要查看表约束的操作。我已经使用了此命令,但不确定是否正确。
DESC
答案 0 :(得分:0)
我使用过此命令,但不确定是否正确。
您尚未说过为什么不正确,所以我们必须猜测您怀疑的原因。也许是因为您获得的约束集小于原始CUSTOMERS表的约束集?
是正确的。当我们使用CREATE TABLE ... AS SELECT时,该语句将创建一个新表,其中包含原始表的投影,列名和数据类型(假设使用香草SELECT子句)和数据(由WHERE子句确定,如有)。但是,唯一创建的约束是主键列和任何其他强制列上的NOT NULL约束。新表没有主键,外键或检查约束。我们必须显式创建这些。
因此,此查询...
SELECT * FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'TEMP_CUST';
...返回的约束可能比您预期的要少。