使用Shell脚本将数据插入Postgres db

时间:2018-11-09 09:12:36

标签: shell

无法使用Shell脚本插入包含字符的数据。 以下是我的Shell脚本的内容

export PGPASSWORD='postgres'; psql -h 'x.x.x.x' -U 'postgres' -d 'postgres' -c 'create table luck3 (empId int,name char(50));'
export PGPASSWORD='postgres'; psql -h 'x.x.x.x' -U 'postgres' -d 'postgres' -c 'insert into luck3 values(9,'sam');'
export PGPASSWORD='postgres'; psql -h 'x.x.x.x' -U 'postgres' -d 'postgres' -c 'insert into luck3 values(6,'ram');'

当数据类型为整数时,该命令运行良好,但是当我插入引号内的“ sam”之类的数据时,它将引发错误:column 'sam' does not exist

1 个答案:

答案 0 :(得分:0)

  

export PGPASSWORD ='postgres'; psql -h'x.x.x.x'-U'postgres'-d'postgres'-c'插入luck3值(6,'sam');'   您可以在脚本的任何地方使用半引号。因此,需要在查询中对其进行转义:

-c 'insert into luck3 values(6,\'sam\');'

或者为了更好地阅读(理解),请使用双引号“转义”查询:

-c "insert into luck3 values(6,'sam');"