【问题标题】:How to query effectively in Oracle SQL before inserting any data在插入任何数据之前如何在 Oracle SQL 中进行有效查询
【发布时间】:2019-08-02 18:06:24
【问题描述】:

我的场景就像我在一个表中有数千行。该表有 8 列。我想检查表中是否存在完全相同的行。我的要求我不应该在表中两次插入同一行。显然,为此我必须在任何新插入之前比较每一行。我没有太多的 SQL 专业知识,所以我不知道什么是获得最大效率的最佳方法。请给我建议。

【问题讨论】:

  • 既然你问的是 Oracle,SQL Server 在这里做了什么?
  • 您应该如何处理“完全相同的行”不存在但键存在的情况(即插入行会违反 PRIMARY KEY 或 UNIQUE 约束)?

标签: sql oracle performance


【解决方案1】:

一个简单的选项是创建包含所有这些列的唯一索引,例如

create unique index ui1_your_table on your_table (col1, col2,..., col8);

数据库会处理剩下的事情。

【讨论】:

  • 我更喜欢唯一的约束,即使它会被同一个索引强制执行。约束声明有关数据的规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2012-06-05
相关资源
最近更新 更多