执行 SQL 命令的 Bash 脚本不起作用

执行 SQL 命令的 Bash 脚本不起作用

我有以下要从 bash 脚本执行的 PostgreSQL 数据库的 SELECT 语句:

psql -U chh1 -d crewdb -c "SELECT SETVAL('date_link_date_linkid_seq', (SELECT MAX(date_linkid) FROM date_link), true);"

这将是脚本中执行命令所需的语法。我想用从 STDIN 读取的变量替换 date_link。为此,我编写了以下 bash 脚本:

  1 #!/bin/bash
  2 
  3 echo "Please enter the table name: "
  4 read -r var
  5 
  6 
  7 echo 'psql -U chh1 -d crewdb -c "SELECT SETVAL('"${var}"_"${var}id_seq"', (SELECT MAX("${var}id") FROM "$var"), true);"'


当我运行它时,SELECT MAX(.. 部分不起作用,并且我得到以下输出:

psql -U chh1 -d crewdb -c "SELECT SETVAL(date_link_date_linkid_seq, (SELECT MAX("${var}id") FROM "$var"), true);"

你能帮忙吗?

相关内容