我有一个数据库表,列名为'long'。它是MySQL的关键字,不确定它是否是关键字冲突或其他什么,我无法使用此关键字列名运行某些简单的SQL脚本。我尝试运行SQL来改变列名,使用:alter table mytable change column long lng double
但它不起作用。
问题是,阻止上述简单的alter SQL工作的原因是什么? (对于现有的任何其他列,上面的SQL都有效),如果它是关键字冲突的原因,我该如何使它工作?我可以在MySQL中使用任何关键字转义符号吗?
非常感谢。
答案 0 :(得分:3)
尝试:
ALTER TABLE mytable CHANGE COLUMN `long` lng DOUBLE
(反击是AFAIK,特定于MySQL。)
标识符可以引用或不引用。如果标识符包含特殊字符或是保留字,那么只要您引用它,就必须引用它。 ...标识符引号字符是反引号(“`”)(source)
答案 1 :(得分:1)
尝试在“长”
周围使用“正确的引用”像这样:
`long`
答案 2 :(得分:1)
再次尝试查询正常工作alter table table_name更改列long lng double但其必要的long数据类型应该是整数然后尝试可能是你的问题解决了