【发布时间】:2020-12-29 18:13:42
【问题描述】:
我正在尝试将列重命名为名称中带有句点的内容,但到目前为止还没有成功。
类似:
ALTER TABLE x RENAME COLUMN "id" TO "review.id"
失败:
DB::Exception: 无法将列从嵌套结构重命名为普通列,反之亦然。
尝试了以下方法来逃避这段时间:
- 使用 \ 转义句点 - 保留反斜杠
- 名称周围的反引号 - 保留反引号
任何帮助将不胜感激!
【问题讨论】:
-
您根本不应该这样做。句点是任何数据库中 SQL 命令的保留字符。在列名中使用句点只会在您开始查询和加入此表时使事情变得混乱。例如,在 SQL 中,如果您在同一命令中有许多表,则可以使用表名或别名,并且您将需要使用句点,例如
select a.col1, b.col2...... from tablea a, tableb b用句点命名列不仅是一个坏主意,而且是非常规的。某些数据库将允许您这样做,具体取决于它们的语法。再次不推荐,只需使用下划线即可。 -
CH 对嵌套列使用点(句点)字符。您不能将普通列重命名为嵌套列。
-
谢谢@DennyCrane。是否有另一种重命名方法。我想知道是否可以创建一个新列并复制另一个列的值。
-
为什么需要它?您可以在选择中使用别名。
select id as "x.id"
标签: sql clickhouse