问题标签 [sql-delete]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
28372 浏览

sql - SQL Server 2000 删除顶部 (1000)

我有一个包含大约 4500 万条记录的表的大型 SQL Server 数据库。我正在归档此表,并且需要删除两年前的所有条目。我可以正常插入存档表,但是在删除时遇到了效率问题。

我的问题在于当前表上的索引。我想在 1000 个记录块中删除(和存档插入)。为此,我需要确定满足要求的“前”1000 条记录(超过两年)。该行上的 DateTime 标记是一个聚集索引,因此非常适合抓取行。但是 SQL 2000 不允许 DELETE TOP 1000 .... 所以我需要做类似的事情:

如果对 UniqueID 进行索引,这将非常有用。由于不是,这需要很长时间(它正在扫描表中要删除的 1000 条记录中的每一条)。表上没有其他唯一标识记录的索引。有人告诉我,在 UniqueID 上计算索引成本太高,因为这是一个实时数据库。谁能指出优化此查询的方法?

0 投票
4 回答
208198 浏览

mysql - SQL DELETE with JOIN another table for WHERE 条件

我必须删除guide_categoryguide表无关的行(死关系)。

这是我想做的,但它当然不起作用。

错误:

您不能在 FROM 子句中指定目标表 'guide_category' 进行更新

0 投票
2 回答
7872 浏览

mysql - MySQL删除语句优化

我有一些删除查询要针对一些非常大的表(~100 GB)运行,我想尽可能地优化它们:

column1 是一datetime列,我假设为该列创建索引将加快删除速度。除此之外,我能在这里做什么?使用该date_sub()函数会减慢查询速度吗?我应该在运行查询之前计算该值吗?

column2 是 table2 的主键,所以根据 mysql 文档它已经是一个索引。我的问题是:索引类型是PRIMARY,是一样的INDEX吗?我是否必须制作另一个索引INDEX以加快速度?

table3 有一个复合主键,即 column3 和 column4。所以我有一个主键索引,但由于删除查询不使用column4,我应该为column3创建一个单独的索引吗?或者组合的主键会做吗?

我想这些是非常基本的问题,但我找不到特定于我的情况的明确答案,所以任何帮助将不胜感激!

0 投票
3 回答
1673 浏览

sql - SQL Server 2005 高效删除

我手头的问题是我需要从表中删除大约 60M 记录,而不会导致与使用该表的其他进程发生死锁。在这一点上,我几乎已经使用 while 循环删除了记录,该循环一次只处理大约 1M 条记录,但是它需要一整天。

Q1:从表中删除大量数据、保持表在线以及对需要在 MS SQL Server 2005 中使用该表的其他资源的影响最小的最佳方法是什么?

Q2:有没有办法像在 Oracle 中一样在 SQL Server 中实现单独的行锁定(而不是表锁定)?(注意回答这个问题可能会回答 Q1)。

A2:正如@Remus Rusanu 告诉我的那样,有一种方法可以通过删除来进行行级锁定。

0 投票
4 回答
24161 浏览

mysql - 从表中删除数据,通过两个表连接

我正在处理一些相当敏感的数据,所以我想绝对确定我做得正确。

我正在尝试删除与另一个表关联的表中的行

关联表的唯一方法是通过另外两个表连接......

这是确切的查询:

如您所见,它并不漂亮。

我通过 MySQL 查询浏览器遇到了一个奇怪的错误......

MULTI DELETE 中的未知表“Transaction_Amount”

我试过阅读 mysql 手册,这似乎对我有用......任何人有任何想法?

0 投票
6 回答
615 浏览

mysql - 删除查询的 SQL

我正在尝试为我的程序编写一个 SQL 查询,但我就是不知道怎么做。我不知道足够的SQL。

我正在尝试实施一个在线团队系统(对于某些网站)。我有两张桌子:

现在,我需要:删除teammembers对应的 eventId 为teamId1 的所有记录。

我正在努力:

我不确定这是否真的在做我想做的事情。

此查询是否错误,如果是(可能是),我该如何编写这样的查询?

0 投票
5 回答
11503 浏览

sql-server - sql server delete 因索引而大大减慢

我正在运行一个存档脚本,该脚本根据输入的日期从大型(约 50m 记录数据库)中删除行。日期字段是表上的聚集索引,因此我将条件语句应用于其中。

我在一个while循环中运行这个删除,批量尝试从1000到100,000条记录。无论批量大小,它都非常慢;每分钟删除 10,000 条记录。查看执行计划,在“索引删除”上花费了很多时间。表中大约有 15 个字段,其中大约 10 个字段上有某种索引。有没有办法解决这个问题?我什至不确定为什么每次删除索引都需要这么长时间,有人可以解释一下这里到底发生了什么吗?这是我的执行计划示例:

替代文字 http://img94.imageshack.us/img94/1006/indexdelete.png

(序列指向删除命令)

这个数据库是实时的并且经常被插入,这就是为什么我犹豫使用复制和截断方法来修剪大小。我在这里还有其他选择吗?

0 投票
7 回答
28810 浏览

sql-server - 删除sql server中的大量数据

假设我有一个包含 10000000 条记录的表。这两种解决方案有什么区别?

  1. 删除数据,例如:

    /li>
  2. 逐行删除应用程序的所有数据:

    /li>

第一个解决方案是否具有最佳性能?对日志和性能有什么影响?

0 投票
3 回答
21808 浏览

mysql - MySQL从多个表中删除行

这是正确的方法吗?

0 投票
1 回答
887 浏览

mysql - 使用 Doctrine 在 MySQL 数据库上删除多表的语法是什么?

使用Doctrine,我试图根据从多个表中收集的数据删除单个表中的记录。

“companies_groups”是将“公司”链接到“组”的关联表。我想删除此表中链接到特定公司的所有记录,但只有链接到“公共”组的“companies_groups”记录才会被删除。

如果我用纯 SQL 编写它,它看起来像这样:

教义中的等价物是什么?我一直在挣扎和尝试一个小时左右。

目前我有这个:

(我的 Doctrine 模型是“companies_groups”表的“Company_group”和“groups”表的“Group”)

这会产生这个 SQL:

您可以看到生成的 SQL 在 DELETE 和 FROM 之间缺少“companies_groups”,并且限定符被删除(意味着“id”将不明确)。

让我知道我是否可以提供任何有用的其他信息。