如何在 MariaDB 10.2 中使用“递归”一词作为列名

问题描述 投票:0回答:2

在我的 TYPO3 v7.6 安装中,我有一个包含以下行的 SQL 脚本:

 recursive tinyint(3) unsigned DEFAULT '0' NOT NULL,

这会尝试创建一个名为“recursive”的列。

不幸的是,从 MariaDB 10.2 开始,recursive 就成为保留关键字。我尝试像这样转义这个词:

`recursive`

但这仍然给了我和以前一样的错误:

您的 SQL 语法有错误;检查与您的 MariaDB 相对应的手册 | | |服务器版本,用于在'recursive tinyint(3) unsigned NOT NULL | 附近使用正确的语法 | | XYZ 行默认为“0”。

我如何编辑我的声明才能使其发挥作用?降级 MariaDB 不是一个选择。

mariadb typo3 mariadb-10.2
2个回答
3
投票

TYPO3 7.6 与 MariaDB 10.2 不兼容。正如您已经说过的,降级 MariaDB 不是一个选择,您唯一的选择是:

  1. 升级到较新版本的TYPO3
  2. 自行修复TYPO3 7.6中的问题
  3. 联系 TYPO3 GmbH 询问 MariaDB 兼容性是否已内置到 ELTS(扩展长期支持)版本中,或者您是否可以赞助此版本。

由于 TYPO3 7.6 是一个非常旧的版本,如果您还没有 ELTS(无论如何都会在今年年底结束),那么它存在多个安全问题,我建议升级到较新的版本。


0
投票

我刚刚从 6.2 更新到 7.6 时遇到了同样的问题,以便将安装升级到当前版本 12.4。

因为

ALTER TABLE sys_file_collection ADD recursive tinyint(4) NOT NULL default '0';

是升级向导中的第一步,我无法跳过它,我只是在 phpMyAdmin 中添加了包含以下 SQL 查询的列:

ALTER TABLE sys_file_collection ADD `recursive` tinyint(4) NOT NULL default '0';

继续进一步的升级向导步骤似乎对我有用......

© www.soinside.com 2019 - 2024. All rights reserved.