gpt4 book ai didi

mysql - 执行此 INSERT 语句时,我应该更改哪些内容以避免 Aurora MySQL 错误 1034?

转载 作者:行者123 更新时间:2023-11-29 16:40:41 24 4
gpt4 key购买 nike

我在 Amazon Web Services (AWS) Aurora MySQL 中始终收到此错误(错误代码:1034。表“/rdsdbdata/tmp/#sql_1709_0”的 key 文件不正确;尝试修复它) 5.7 当我运行以下 INSERT 语句(或将 INSERT 语句中的 SELECT 子句作为单独的 SELECT 语句运行)时。

我需要对 INSERT 语句(或 AWS Aurora MySQL 5.7 实例或其他 AWS 生态系统组件)进行哪些更改才能避免出现此错误? (我主要对如何修复错误消息中引用的临时表不感兴趣 - 我想首先避免出现错误,因为此 INSERT 语句将作为较大脚本的一部分运行)。

INSERT语句如下:

INSERT INTO GEO_AREA ( Geo_Area_Nm,     Geo_Area_Abrv,      Geo_Area_Full_Qualfd_Nm,    Geo_Area_Full_Qualfd_Abrv,      
Geo_Area_Typ_CK, Geo_Area_Prim_ID, Last_Modfd_By_ID, Crtd_By_ID
)
SELECT
Concat("Precinct ", S.PrecinctNumber) AS Geo_Area_Nm, -- The plain Precinct identifier, preceded by the word "Precinct",
-- without any county or state information added.
S.PrecinctNumber AS Geo_Area_Abrv, -- The plain Precinct identifier without any county or state information added.
Concat(S.Jurisname, ", ", STATE.Geo_Area_Nm," - Precinct: ",
S.PrecinctNumber) AS Geo_Area_Full_Qualfd_Nm, -- [Elector Jurisdiction name, State Name:] Precinct: [Precinct ID]
Concat(S.Jurisname, ", ", STATE.Geo_Area_Abrv," - Prcnct: ",
S.PrecinctNumber) AS Geo_Area_Full_Qualfd_Nm, -- [Elector Jurisdiction name, State Name:] Precinct: [Precinct ID]
@Prcnct_CK AS Geo_Area_Typ_CK, -- => Precinct
Concat("US-", S.State, "-",S.Juriscode, "-Prcnct:", S.PrecinctNumber) AS Geo_Area_Prim_ID,
-- Example: US-WY-5602100000-Prcnct:3 08
Max(Concat("DTVF-", S.SourceID)) As Last_Modfd_By_ID,
Max(Concat("DTVF-", S.SourceID)) As Crtd_By_ID
FROM VW_STG_DATA_TRUST_VOTR_INSERT S
LEFT JOIN GEO_AREA STATE -- STATE is the source of the State name and abbreviation that was loaded in Initial LOAD
ON Concat('US-',S.State) = STATE.Geo_Area_Prim_ID
LEFT JOIN GEO_AREA EXIST_GA -- EXIST_GA is the set of records in GEO_AREA before this insert
ON Concat("US-", S.State, "-",S.Juriscode, "-Prcnct:", S.PrecinctNumber) = EXIST_GA.Geo_Area_Prim_ID
WHERE STATE.Geo_Area_Typ_CK = @State_CK -- => Connection for US State level info
-- AND Concat(S.JurisName, ", ", STATE.Geo_Area_Nm) = 'Abbotsford City, Wisconsin'
AND EXIST_GA.Geo_Area_Prim_ID IS NULL
GROUP BY 1,2,3,4,5,6
;

我已采取以下步骤尝试解决该问题,但均无效:

⦁ 在同一 AWS Aurora MySQL 数据库实例中删除并重新创建目标表 (GEO_AREA)。

⦁停止并重新启动RDS实例。

⦁ 创建一个新的 AWS Aurora MySQL 5.7 数据库实例 (wpai-archimedes-dev-dbi),并在其中创建和加载相当小的一组表和 View (包括支持此 INSERT 语句所需的表和 View )。因此,我不认为这是磁盘空间问题。

背景:

⦁ 此 INSERT 语句(及其中的 SELECT 语句)从大型暂存表/ View 中提取数据,该表/ View 包含每个人/选民一行,并尝试将每个[选举]选区的一行加载到地理区域 (GEO_AREA) table 。临时表/ View 中可以有许多行包含单个选区中的选民。

⦁我有两个类似结构的 INSERT 语句,将每个县和选举管辖区加载一行到 GEO_AREA 表中。这两个插入语句工作正常(没有错误)。正确加载县的插入语句示例位于本案例描述的底部。

⦁收到此错误后,我仍然可以对 GEO_AREA 表运行其他 SQL 查询而不会出现错误,例如,

SELECT * FROM GEO_AREA WHERE Geo_Area_Typ_CK in (252, 255) order by 6 desc, 4;

⦁ 使用 LOAD DATA LOCAL INFILE 命令将国家和州/省级地理区域的行从笔记本电脑上的 .csv 文件加载到 GEO_AREA 中。

⦁我已在两个单独的 Aurora MySQL 数据库实例中尝试过此 INSERT 语句。两种情况下的实例类型都是 db.r4.xlarge。第一个数据库实例(本技术支持案例中引用的实例)是从 1.002 GB 的 .csv 文件(来自美国所有 50 个州的 100 万条记录的选民随机样本)加载的,该文件目前总共使用 1.334GB 的存储空间。表,并显示(在今天早上拍摄的快照的结果中)该实例使用 1 GB 的存储空间。第二个实例是从 4.​​623GB 的 csv 文件(描述田纳西州所有选民的 4M 条记录)加载的,该文件当前在所有表中使用 3.727GB 的存储空间,并显示(再次在今天早上拍摄的快照的结果中) )表明该实例使用 7 GB 存储空间。

最佳答案

我发现了问题:我在 SELECT 子句中对两个单独的列使用了相同的别名 (Geo_Area_Full_Qualfd_Nm)。我不知道为什么它会生成错误消息(代码 1034),该消息涉及修复临时表。似乎我记得几周前在另一个环境中做过同样的事情,并收到一条错误消息,该消息更清楚地识别了问题,这使我更快地解决了问题。

关于mysql - 执行此 INSERT 语句时,我应该更改哪些内容以避免 Aurora MySQL 错误 1034?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53357935/

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