如果存在mariadb,则更改/重命名列

1tuwyuhd  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(79)

我不能保留我的列,如果它存在的话,这是我尝试的(我在同一个ALTER my_table中添加了不同的测试行来总结):

ALTER TABLE my_table
  RENAME IF EXISTS column_name TO column_name_new;
  RENAME IF EXISTS column_name column_name_new;
  RENAME COLUMN column_name TO column_name_new;
  RENAME COLUMN column_name column_name_new;

字符串
一切都返回给我这个错误:ALTER TABLE my_table RENAME COLUMN column_name TO column_name_new错误代码:1064.您的SQL语法中有一个错误;检查与您的MariaDB服务器版本对应的手册,以了解在第2行“COLUMN column_name TO column_name_new”附近使用的正确语法0.000秒

fgw7neuy

fgw7neuy1#

https://mariadb.com/kb/en/alter-table/使用这个作为参考,我发现RENAME(COLUMN)IF EXISTS well不存在。
这是文档中提供的解决方案:

CHANGE [COLUMN] [IF EXISTS] old_col_name new_col_name column_definition [FIRST|AFTER col_name]

字符串
成功的例子:

ALTER TABLE my_table
  CHANGE COLUMN IF EXISTS column_name column_name_new TYPE DEFAULT VALUE;


这段代码可以重新执行,没有错误,用mariaDB 10.3测试。

相关问题