登录postgresql的shell脚本
时间: 2023-09-30 12:09:18 浏览: 50
#!/bin/bash
# Login to Postgresql shell
echo "Enter the Postgresql username:"
read username
echo "Enter the password for $username:"
read -s password
echo "Enter the database name:"
read database
psql -U $username -d $database -h localhost -p 5432 -W <<< "$password"
相关问题
编写一个postgresql非交换登录的shell脚本
#!/bin/bash
# PostgreSQL非交互式登录脚本
# 需要提前安装psql命令行工具
# 设置变量
DB_HOST="localhost" # 数据库主机名
DB_PORT="5432" # 数据库端口号
DB_NAME="mydatabase" # 数据库名称
DB_USER="myuser" # 数据库用户名
DB_PASSWORD="mypassword" # 数据库密码
# 构建psql命令
PSQL_CMD="psql -h ${DB_HOST} -p ${DB_PORT} -d ${DB_NAME} -U ${DB_USER} -w"
# 执行psql命令
echo "正在连接到数据库..."
${PSQL_CMD}
# 退出脚本
exit 0
shell脚本实现postgresql递归查询
可以使用WITH RECURSIVE语句来实现postgresql的递归查询,以下是一个示例的shell脚本:
#!/bin/bash
psql -U username -d dbname << EOF
WITH RECURSIVE recursive_query AS (
SELECT id, parent_id, name
FROM table_name
WHERE parent_id IS NULL
UNION ALL
SELECT t.id, t.parent_id, t.name
FROM table_name t
JOIN recursive_query r ON t.parent_id = r.id
)
SELECT id, parent_id, name
FROM recursive_query;
EOF
这个脚本使用psql命令连接到数据库,并使用WITH RECURSIVE语句执行递归查询。在这个示例中,我们查询名为table_name的表,该表包含id、parent_id和name三个字段。我们首先选择parent_id为NULL的行,然后使用UNION ALL和JOIN操作递归查询所有子节点。最后,我们选择所有递归查询的结果并输出它们的id、parent_id和name字段。