相关文档
# pg官方文档
https://www.postgresql.org/docs/11/reference.html
# pg库安装步骤
https://www.cnblogs.com/rbcd/articles/18563583
PG通过SQL语句读取二进制bytea类型并进行二进制和十六进制转换
1、将二进制编码为十六进制
select encode("AUUID_0",'hex') from T;
2、将十六进制解码为二进制
select decode('8560377a6d2bf34ab1f2784adc78f500','hex')
pg使用jdbc连接时使用哪个schema
?currentSchema=chemaName
pg杀死执行的sql进程
查询pg的当前活动执行sql进程
SELECT * FROM pg_stat_activity where state='active';
结束进程
SELECT pg_cancel_backend(15006);
备份、恢复命令
# 执行备份恢复命令时,可以先设置密码变量,就可以不用输入密码
PGPASSWORD=真实库密码
# pg备份命令:
bin/pg_dump -h localhost -p 5432 -U postgres -d dbName -f /a.txt -n public
# 提示输入密码:-W
# 仅导出数据:--data-only
# 指定某张表:-t tableName
# pg恢复命令:
bin/psql -h localhost -p 5432 -U postgres -d dbName -f /a.txt
# 删除库名
PGPASSWORD=pwd dropdb -h localhost -p 5432 -U postgres deleteDbName
PostgreSQL数据库表唯一性约束失效问题
PostgreSQL数据库表唯一性约束失效,当存在空值时,会认为是非重复记录,可以使用函数把空值转成固定值-1
SELECT coalesce(null,-1)
sql查询
--pg树数据列表查询
WITH RECURSIVE cte(id,pid,dept_name) AS(
-- 基础情况:选择顶级商品(一级目录)
SELECT id, pid, dept_name FROM meta_dept_info WHERE pid IS NULL AND is_delete='0'
UNION ALL
-- 递归部分:选择每个商品的直接子商品
SELECT t1.id, t1.pid, t1.dept_name FROM meta_dept_info t1
JOIN cte t2 ON t1.pid = t2.id -- 关联到父商品
)
SELECT * FROM cte;