已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我如何知道一个查询表的主键?
我不能使用像user_constraints或information_schema这样的表。这是因为您没有权限获取其中的信息。
只有一个表和它的字段。假设你有3个字段。
id_stor int,
id_plant int,
id_pdp int,
center VarChar(20)
你在这个表中有很多信息,你用语法WHERE
和GROUP BY
过滤,输出是单行吗?我的意思是,如果我这样做:
SELECT * FROM table1
WHERE center = 'blabl'
GROUP BY id_stor,
id_plant,
id_pdp
我在输出中得到一行?或者我必须修改查询直到假设PK?
1条答案
按热度按时间nfzehxib1#
当所有未聚合的列都是常量时,一些数据库支持使用带有
GROUP BY
子句的SELECT *
(例如MySQL fiddle);Oracle没有。如果您尝试:
然后你会得到错误:
您需要指定所有列,并聚合不在
GROUP BY
子句中的列:fiddle
我如何知道一个查询表的主键?
使用
USER_CONSTRAINTS
或ALL_CONSTRAINTS
数据字典表。我不能使用
user_constraints
等表那你就没有权限知道这些信息。
和你的DBA谈谈,向他们询问信息,或者询问查询数据字典的权限。如果他们说没有,那么你真的没有权限知道这些信息。