【问题标题】:How to check if all fields are unique in Oracle?如何检查Oracle中的所有字段是否都是唯一的?
【发布时间】:2010-10-24 20:32:41
【问题描述】:

如何检查Oracle中所有字段是否唯一?

【问题讨论】:

  • 您需要提供更多信息。最低限度是表的结构/定义,理想情况下是 CREATE TABLE 语句。然后是一些示例数据以及您期望从该示例数据中获得的结果。
  • 表中一列的所有字段
  • @Burjua 请更改您问题的措辞,以便更易于解释。这是一个重要的数据库问题,但表述得非常不清楚。

标签: sql oracle unique


【解决方案1】:
SELECT myColumn, COUNT(*)
FROM myTable
GROUP BY myColumn
HAVING COUNT(*) > 1

如果它们的出现次数大于 1(即它们不是唯一的),这将返回所有 myColumn 值以及它们的出现次数。

如果此查询的结果为空,那么您在此列中有唯一值。

【讨论】:

    【解决方案2】:

    一个简单的方法是使用 DBMS_STATS 分析表。完成后,您可以查看 dba_tables... 查看 num_rows 列。看看 dab_tab_columns。将每列的 num_distinct 与行数进行比较。如果您担心影响大型表上的生产系统,这是一种无需执行全表扫描即可完成所需操作的方法。如果您想要直接结果,请按照其他人的建议通过对带有 group by 的表运行查询来执行。

    【讨论】:

      【解决方案3】:

      一种方法是创建唯一索引。 如果索引创建失败,你有现有的重复信息,如果插入失败,它会产生重复...

      【讨论】:

        猜你喜欢
        • 2023-01-31
        • 2014-01-01
        • 1970-01-01
        • 2017-06-06
        • 1970-01-01
        • 1970-01-01
        • 2016-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多