gpt4 book ai didi

mysql - 在SQL错误1206中插入一个巨大的表

转载 作者:行者123 更新时间:2023-11-30 23:09:42 24 4
gpt4 key购买 nike

我在将数据从一个表插入到另一个表时遇到问题,这是一个 MySQL 数据库。必须导入的表大约 4gb 大。我正在使用此查询导入数据。

insert into table1(column1, column 2)
select table2.column1, table2.column2
from table2 left join table1 on table2.column1 = table1.column1
where table1.column1 is null

我收到此错误:错误代码 1206:锁总数超过锁表大小。

增加缓冲池大小不是一个选项,我无权这样做。 SQL 查询适用于较小的表。

有人能解决我的问题吗?

解决方法:

 insert IGNORE into table1(column1, column 2)
select table2.column1, table2.column2
from table2;

谢谢 Tom Melly 的回答。感谢 Stefan Winkler 的帮助。

最佳答案

column1 是否有唯一索引?

如果是这样,您可以在插入中添加忽略选项,这意味着您可以跳过左连接:

insert IGNORE into table1(column1, column 2)
select table2.column1, table2.column2
from table2;

这将跳过任何会造成键冲突的插入,但查询仍会运行(如果没有“忽略”,它将在第一次键冲突时失败)。

关于mysql - 在SQL错误1206中插入一个巨大的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com