从 shell 脚本执行的命令中的 Mysql 关键字

标签 mysql shell

我已经知道,为了让 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/

相关文章:

unix - 使用 SSH 在远程机器上发出多个命令的替代方法?

python - 在 Python 中运行 shell 内置命令

linux - 有人可以帮助我了解这个 shell 脚本背后的方法吗?

mysql - 如何在mysql中存储数据,以获得最快的性能?

c# - 在 C# 中从数据库加载组合框

mysql - 更新、删除、更改、重命名、创建、修复 = 消失

用于计算多个文件平均值的 Linux Bash 脚本

mysql - 限制每个月的行数?

mysql - 如何在不同服务器上运行的不同数据库(MYSQL)中的两个表之间同步数据

Bash 使用 GNU parallel 发送多个 curl 请求