使用 after 关键字更改 table 时出现 "Channel number out of range" 错误
Getting "Channel number out of range" error when altering table using after keyword
我有一个带有一些外键和触发器的 MariaDB table。出于某种原因,当我尝试使用 AFTER 关键字更改它时出现错误。
如果我运行这个:
ALTER TABLE `foo` ADD COLUMN baz VARCHAR(190) NULL DEFAULT NULL AFTER `bar`;
我收到这个错误:
ERROR 1030 (HY000): Got error 44 "Channel number out of range" from storage engine InnoDB
然而,如果我 运行 这个:
ALTER TABLE `foo` ADD COLUMN baz VARCHAR(190) NULL DEFAULT NULL;
它有效,但(正如预期的那样)没有按照我需要的顺序组织列。
知道如何使用我需要的列顺序让它工作吗?
更新:
我还没有弄清楚这个问题,但我确实尝试用 AFTER 关键字对其他 table 进行更改,结果发现这个问题专门发生在这个 table,其他tables 功能正常。
发生错误是因为 MariaDB 运行 在 Windows 文件系统上,通过 WSL 共享到 Docker 容器 (/mnt/c/Git/my_project
)。
为了修复它,整个容器被移动到 WSL 文件系统 (~/my_project
),然后带有 AFTER 关键字的 ALTER 命令工作正常。
我有一个带有一些外键和触发器的 MariaDB table。出于某种原因,当我尝试使用 AFTER 关键字更改它时出现错误。
如果我运行这个:
ALTER TABLE `foo` ADD COLUMN baz VARCHAR(190) NULL DEFAULT NULL AFTER `bar`;
我收到这个错误:
ERROR 1030 (HY000): Got error 44 "Channel number out of range" from storage engine InnoDB
然而,如果我 运行 这个:
ALTER TABLE `foo` ADD COLUMN baz VARCHAR(190) NULL DEFAULT NULL;
它有效,但(正如预期的那样)没有按照我需要的顺序组织列。
知道如何使用我需要的列顺序让它工作吗?
更新:
我还没有弄清楚这个问题,但我确实尝试用 AFTER 关键字对其他 table 进行更改,结果发现这个问题专门发生在这个 table,其他tables 功能正常。
发生错误是因为 MariaDB 运行 在 Windows 文件系统上,通过 WSL 共享到 Docker 容器 (/mnt/c/Git/my_project
)。
为了修复它,整个容器被移动到 WSL 文件系统 (~/my_project
),然后带有 AFTER 关键字的 ALTER 命令工作正常。