以下 shell 脚本未将数据插入表中。如何传递变量值以在 shell 脚本中插入 sql 语句。
id=0
while true
do
id=`expr $id + 1`;
mysql -u root -ptest --socket=/data/mysql1/mysql.sock -e 'insert into mytest1.mytable2(id,name) values (' $id ',"testing");'
echo $id >> id.txt
done
我已经如下修改脚本并尝试过,但仍然有问题
id=0
while true
do
id=`expr $id + 1`;
# mysql -u root -ptest --socket=/data/mysql1/mysql.sock1 -e 'insert into mytest1.mytable1(name) values ("amma");'
mysql -u root -ptest --socket=/data/mysql1/mysql.sock -e 'insert into mytest1.mytable2(id,name) values ( $id ,"testing");'
echo $id >> id.txt
done
错误 :
]$ ./insert
ERROR 1054 (42S22) at line 1: Unknown column '$id' in 'field list'
这个应该工作:
双引号内的变量会被插值,而单引号之间的变量则不会。