一个使用IN的查询 使用 POSITION 使用 ARRAY_POSITIONS
表rabbits数据如下: id info 1 {"name":"Henry", "food":["lettuce","carrots"]} 2 {"name":"Herald","food":["carrots","zucchini"]} 3 {"name":"Helen", "food":["lettuce","cheese"]} 检查food数组是否包含某字符串: 注意引号,PGSQL里JSONB中的元素都是字符串,如:boolean: 'true', string: '"hello"', integer: …
更新或插入 (jsonb_set) 需要注意的是,插入时路径(除最后一个)必须存在,即这里a,aa必须存在,否则无法插入; 若是往子Map更新键值对且直接以Map格式更新,还需与之前子Map数据合并,否则会丢失; 由于第3个参数格式为jsonb,值为字符串时还需加上引号才能正确执行; 删除子Map中的key (#-) 更多说明请查看官方文档:https://www.postgresql.org/docs/10/functions-json.html
1. 密码修改 2. 修改/赋予权限 SUPERUSER | NOSUPERUSER 是否是超级用户 CREATEDB | NOCREATEDB 是否能创建数据库 CREATEROLE | NOCREATEROLE 是否能创建角色 INHERIT | NOINHERIT 是否能继承所在角色组权限 LOGIN | NOLOGIN 是否能登录 REPLICATION | NOREPLICATION 是否能复制数据 BYPASSRLS | NOBYPASSRLS 是否忽略所有行级安全策略(row-level securi…
PGSQL中可使用COPY命令来导入/导出数据,这里以CSV文件为例。 导出数据: SQL Shell执行: 如果表格使用了分表,需使用select获取数据: 导入数据: 注意: 1. 导入的CSV文件第一行为表格列字段(逗号分隔),若缺失,如果命令中指定了字段,那么仍然能导入成功,但第一行数据会丢失。 2. COPY命令默认从服务器端寻找文件,若文件在客户端,需使用\COPY,如: 另外,\COPY只能在命令行中执行,它是变相调用COPY FROM STDIN,而COPY可作为SQL语句执行。
导出远程数据库,-a 仅数据,-s 仅表结构,默认所有 CMD/PowerShell执行(注意配置PG环境变量): 本地SQL Shell创建目标数据库 通过文件恢复数据库 CMD/PowerShell执行: 若要恢复内网或远程电脑,可在-U前加上-h {ip} -p {port} 另外,若要指定单表导入/导出,可在数据库前加上 -t {表名}
PG 9.5开始支持的特性,根据约束,存在则更新,不存在则插入; 使用某字段约束: 注意字段属性必须是UNIQUE,不然会报错: there is no unique or exclusion constraint matching the ON CONFLICT specification 使用唯一键约束:
我的版本:Qt 5.6.3(VS2015版) PostgreSQL 10.7(32位) 1.编译驱动 需要Qt源码,对应下载:http://download.qt.io/official_releases/qt/5.6/5.6.3/single/qt-everywhere-opensource-src-5.6.3.zip 解压后,打开Qt的命令行工具,cd到F:\qt-everywhere-opensource-src-5.6.3\qtbase\src\sql\drivers\psql,执行 再执行nm…