我正在运行一个查询来删除重复的条目。 它在没有 LIMIT 语句的情况下工作,但会使服务器过载。 我想使用 LIMIT 语句对其进行批处理。
DELETE t1
FROM data as t1
join data as t2
WHERE t1.type = t2.type
AND t1.timestamp = t2.timestamp
LIMIT 100
并使用 LIMIT 语句接收错误:
错误 1064 (42000(: SQL 语法有错误;请查看与您的 MariaDB 服务器版本对应的手册,了解在第 6 行的"LIMIT 100"附近使用的正确语法
您不能直接使用可以在选择中使用的删除限制
DELETE data
FROM data as t1
join (
select distinct type, timestamp from data limit 100
) t2 on t1.type = t2.type AND t1.timestamp = t2.timestamp
多表DELETE
和UPDATE
不允许LIMIT
子句。 这是错误消息的原因。 要解决...
要执行大量DELETEs
(或UPDATEs
(,请按块循环访问表。这将讨论细节。 为了提高效率,它使用PRIMARY KEY
,以便高效地浏览桌子。