mysql - 用于在 MySQL 中插入值的 Bash 脚本

标签 mysql sql linux bash scripting

我想制作一个连接到我的 MySQL 服务器并从 txt 文件中插入一些值的 bash 脚本。 我已经写下来了:

#!/bin/bash
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;

但我收到以下错误:

ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1

我想错误出在我的 txt 文件中,但我已经尝试了很多变体,但仍然没有成功的希望。

我的 txt 文件如下所示:

10.16.54.29 00:f8:e5:33:22:3f marsara

最佳答案

试试这个:

#!/bin/bash
inputfile="test.txt"
cat $inputfile | while read ip mac server; do
    echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');"
done | mysql -uroot -ptest test;

这样,您可以流式传输文件读取以及 mysql 命令执行。

关于mysql - 用于在 MySQL 中插入值的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997558/

相关文章:

PHP - 多维 In_Array 问题

sql - 动态查询,参数不适用于 where in

c# - 动态查询在 asp.net 中不起作用

linux - 如何验证两个检查点之间的所有内存分配都已释放?

linux - 如何在 Linux 中为 "ls"设置默认参数?

c - 如何在 Linux 上显示文件的最后修改时间

MySQL:我想将数组传递给函数并查看它遍历数组的每个元素

MySql 与 NULL 行相乘的列

mysql - 使用 Force 在 Windows 上导入大型 MySQL .sql 文件

java - 像oracle中的搜索一样吗?