mysql - 从 bash 脚本更新 mysql 数据库中的数据

标签 mysql bash shell insert

这是我第一次尝试使用可执行的 .sh 文件在 mysql 数据库中插入一些信息。

我正在使用以下 bash 脚本,但它不起作用。显然,为了便于理解,下面的大部分变量都已被替换和简化。

#!/bin/bash

mysql -D mydbname -u mydbuser -p mydbpass <<EOF
INSERT INTO mytable (mycolumn) VALUES ('myvalue') WHERE id = '13';

exit;

您可以看到我只想将我的值插入到 id = 13 并且该行确实存在的行中。

我认为我没有正确格式化查询,对吗?

编辑:好的,根据下面的建议,我现在已经得到了这个,但它仍然不起作用?

#!/bin/bash
mysql -D mydbname -u mydbuser -p mydbpass <<EOF
UPDATE mytable SET mycolumn = 'myvalue' WHERE id = '13';
exit;

最佳答案

经过反复试验找到了答案。

以防万一其他人想要做同样的事情:

#!/bin/bash

mysql -u username -puserpass dbname -e "UPDATE mytable SET mycolumn = 'myvalue' WHERE id='myid'";

请注意,-p 和您的密码 -puserpass 之间没有空格,如果您在此处放置一个空格 -p userpass,它将提示您输入密码。

希望对大家有所帮助;)

关于mysql - 从 bash 脚本更新 mysql 数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462376/

相关文章:

mysql - INSERT ... SELECT(插入多行)

mysql - 更正联接语法以仅连接表 A 中与表 B 匹配的行

linux - 使用变量时 Sed 替换不起作用

Ruby 转义 ARGV 参数或字符串作为 shell 命令的参数

shell - 将动态变化的字符串存储到变量中

mysql - 如何将mysql结果行存储为包含表格式字符串的变量?

mysql - 在 MySQL 过程中设置变量值的问题

bash - 如何取消终端中的长输出?

bash - 如何在 Bash 中重试命令?

linux - $@ 在 shell 脚本中是什么意思?