Postresql通过Shell脚本删除单个表

时间:2019-04-02 18:04:39

标签: bash postgresql shell

我有一个配置脚本,用于重置我的开发PostgreSQL数据库。这是作为Shell脚本编写的。但是,我想保留一个在其他任何地方都没有任何外键的表。因此,我正在寻找一种删除单个表而不是整个数据库的方法。

这是我当前的设置,效果很好。它将删除数据库,创建新数据库并为我创建所有表:

#!/bin/bash

export PGPASSWORD=$1

echo "Configuring ..."

dropdb -U $2 $3
createdb -U $2 $3

psql -U $2 $3 < ./bin/sql/user.sql
psql -U $2 $3 < ./bin/sql/account.sql
psql -U $2 $3 < ./bin/sql/account-user.sql
psql -U $2 $3 < ./bin/sql/fuelprice.sql
psql -U $2 $3 < ./bin/sql/vehicle.sql
psql -U $2 $3 < ./bin/sql/account-vehicle.sql

echo "All configured."

但是,我希望能够删除数据库并创建新表,而不是删除数据库并创建新表。

我尝试了以下操作:

#!/bin/bash

export PGPASSWORD=$1

echo "Configuring ..."

psql -U $2 $3 -c `DROP TABLE "Config.User"`

psql -U $2 $3 < ./bin/sql/user.sql


echo "All configured."

我无法工作的部分是: psql -U $ 2 $ 3 -c DROP TABLE "Config.User"

我从命令行得到以下答复: psql:选项需要一个参数-c

我看了看帮助,但不确定我可能会缺少哪些其他论点。

请注意,$ 1是密码变量,$ 2是用户,$ 3是数据库。

1 个答案:

答案 0 :(得分:0)

根据用户“ melpomene”的评论。所需要做的就是将`换为'。