我已经知道,为了让 Mysql 将关键字理解为列名,我们应该添加反勾号。
我正在尝试从 shell 脚本执行此命令
echo "ALTER TABLE partners.partners CHANGE COLUMN `name` `client_name` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL" | $MYSQL
其中 $MYSQL
是我的数据库连接命令(适用于其他命令)。
我想做的是将名为 name
的列重命名为 client_name
但出现此错误:
./test_script.sh: 1: ./test_script.sh: name: not found
如果我登录到mysql控制台,执行同样的事情,它完美地工作
有人遇到过这个问题吗?
最佳答案
使用单引号以避免解释反引号或`,否则它们将用于命令替换:
$MYSQL -e 'ALTER TABLE partners.partners CHANGE COLUMN `name` `client_name` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL'
关于从 shell 脚本执行的命令中的 Mysql 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588821/