
PostgreSQL
亮子AI
全干程序员
展开
-
【Prisma】怎样让字段增加 1
比如,浏览量增加1。如果分两步:获取字段当前值,加1,再更新表。这种方法也没问题,只是不够优雅。如何优雅的让一个数值字段增加1?原创 2024-07-21 22:16:27 · 343 阅读 · 0 评论 -
【PostgreSQL】Ubuntu 下使用 Prisma 的初始化流程
完成上面准备工作就ok了,不需要手工创建数据库,因为下面将由 Prisma 来创建数据库。整个数据库创建工作就完成了。原创 2024-01-17 23:15:00 · 769 阅读 · 0 评论 -
【PostgreSQL】怎样查看 jsonb 数据?
用通常的 SELECT 语句,jsonb 类型的内容输出在一行,通常内容很长,看不全内容。这时候你可以使用 jsonb_pretty() 函数来打印出内容:> select jsonb_pretty(jsonb_col) FROM mytable;------------------------------------ { + "what": "is this", + "nested": {原创 2021-06-27 10:00:34 · 244 阅读 · 0 评论 -
Node.js 连接 PostgreSQL 的奇怪问题:query 不会返回!
这个问题花了我6个小时!无论是使用回调函数、还是使用 Promise,query 死活没反应。数据库连接正常,新建一个项目来使用数据库也是正常。最后发现是版本问题,升级 pg(node-postgresql)到 8.2.0 版本就解决了!结论:在使用 Node 14 时,要升级 pg 到 8.0 以上!参考:https://github.com/brianc/node-postgres/issues/2069#issuecomment-619456031...原创 2021-02-12 19:03:37 · 473 阅读 · 0 评论 -
PostgreSQL,Ubuntu下安装pgAdmin4
pgAdmin4是PostgreSQL的管理利器,新版 pgAdmin 4 默认是服务器模式,我把它安装在 Ubuntu 18.04 上,下面是安装过程。首先安装公钥 curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add更新源 sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_原创 2020-12-06 11:14:44 · 3879 阅读 · 4 评论 -
优雅实现:如果记录存在,就更新记录,否则插入一条新记录
通常,我们用两条语句来实现这个功能:UPDATE table SET field='C', field2='Z' WHERE id=3;INSERT INTO table (id, field, field2) SELECT 3, 'C', 'Z' WHERE NOT EXISTS (SELECT 1 FROM table WHERE id=3);可以用下面一条语句实现:INSERT INTO the_table (id, column_1, column_2) VA原创 2020-05-16 05:21:31 · 584 阅读 · 0 评论 -
PostgreSQL 如何写条件:值在数组中、值不在数组中
值在数组中:SELECT COUNT(*) FROM "messages" WHERE 3 = ANY (recipient_ids)值不在数组中SELECT COUNT(*) FROM "messages" WHERE NOT (3 = ANY (recipient_ids))如果你用的是 node.js 的 pg 包,值在数组中可以这样写:var ids = [1,3,4]; ...原创 2020-03-06 20:42:05 · 8912 阅读 · 0 评论 -
PostgreSQL INSERT 如何获得新插入元素的 id?
如果表已经设定 id 为自增变量,插入操作如何获得新插入记录的 id 值?答案是使用 RETURNING 子句:INSERT .... RETURNING id;获取 id:const id = res.rows[0].id...原创 2020-02-29 21:40:33 · 3163 阅读 · 0 评论 -
psql 竖式输出查询结果
psql 默认是水平输出查询结果,一条记录占一行。而且和 mysql 不同的是,它还不换行,如果一行内容太多,后面的就看不见了。如果想切换城竖式显示,只需要使用 \x 命令:# \xExpanded display is on.# \xExpanded display is off.查询结果竖式显示:-[ RECORD 1 ]id | 1bar | Hello-[ RECO...原创 2020-02-28 12:39:09 · 2876 阅读 · 0 评论 -
Postgresql 改变用户密码
修改密码:ALTER USER user_name WITH PASSWORD 'new_password';为了避免在命令历史中泄露了密码,可以使用下面的命令来删除命令历史:rm ~/.psql_history原创 2020-02-27 06:37:06 · 640 阅读 · 0 评论 -
Ubuntu 上如何安装 PostgreSQL?
直接使用 apt 来安装:sudo apt updatesudo apt install postgresql postgresql-contrib安装完成后,使用默认用户 postgres 连接默认数据库 postgres。切换 Linux 用户为 postgressudo -iu postgres登录 psqlpsql这样就打开了 postgres 数据库。从上...原创 2020-01-29 08:51:41 · 245 阅读 · 0 评论 -
Ubuntu 上安装 pgcli
pgcli 是 PostgreSQL 的命令行管理工具,它不但完全兼容 psql 的命令,还增加了很多方便的命令。最大的特点是交互性,它让命令行操作数据库的效率大大提升。记不住命令?记不住字段名称?pgcli都会给你提示。在 Ubuntu 下,使用下面的命令来安装 pgcli:sudo apt updatesudo apt install pgcli福利彩蛋在使用 SELECT 命令时...原创 2020-01-29 08:46:29 · 548 阅读 · 0 评论 -
PostgreSQL 如何删除外键限制?
首先找出数据库表的外键名称:\d [tablename]...."table_name_id_fkey" FOREIGN KEY (id) REFERENCES other_table(id) ....然后使用下面的命令删除外键:ALTER TABLE [tablename] DROP CONSTRAINT table_name_id_fkey;...原创 2020-01-27 12:54:51 · 7531 阅读 · 0 评论 -
如何把 Postgres 的操作结果写入文件?
psql 和 pgcli 提供了将操作结果输入到文件的功能,只需一个命令:\o out.txt这样,所有的操作命令和结果将保存在 ~/out.txt 文件中。如果要想恢复,仍然想再终端上看操作结果,只需执行同样的命令,这次不用带参数:\o...原创 2020-01-26 19:23:59 · 995 阅读 · 0 评论 -
Postgres 创建自增变量作为 id
代码:CREATE TABLE fruits( id SERIAL PRIMARY KEY, name VARCHAR NOT NULL);数据类型 serial 的取值范围:1 ~ 2,147,483,647https://www.postgresqltutorial.com/postgresql-serial/...原创 2020-01-26 16:59:18 · 466 阅读 · 0 评论 -
Postgresql 换行符写法
三种写法,最后一种最好。第一种:select 'test line 1'||E'\n'||'test line 2';第二种:select 'test line 1'||chr(10)||'test line 2';第三种:select E'test line 1\ntest line 2';...原创 2019-10-20 15:06:54 · 8838 阅读 · 0 评论 -
怎样给 PostgreSQL 的表增加外键?
直接上代码:CREATE TABLE orders ( order_id SERIAL, dish_name TEXT, customer_id INTEGER REFERENCES customers (id));https://tableplus.io/blog/2018/08/postgresql-how-to-add-a-foreign-key.html...原创 2019-08-10 22:15:30 · 7621 阅读 · 0 评论 -
Node.js pg-promise模块出现警告:Creating a duplicate database object for the same connection。怎样在模块中定义数据库连接?
nodejs 的模块 pg-promise 让我们方便使用 PostgreSQL。但是,就算在不同的模块中定义数据库连接,仍然会出现警告信息:WARNING: Creating a duplicate database object for the same connection.正确的做法是,在一个单独的模块中定义数据库连接,其他模块导入使用这个连接。数据库模块的写法:const i...原创 2019-02-25 20:36:14 · 509 阅读 · 0 评论 -
PostgreSQL 操作
登陆两步:sudo -i -u postgrespsql一步:sudo -u postgres psql创建新角色(role)初始时,只有一个角色:postgres切换成 postgres 用户后,就可以用下面的命令创建新用户:postgres@VM-0-9-ubuntu:~$ createuser --interactive同样,在其他用户下,可以直接使用命令:sud...原创 2019-02-18 18:59:28 · 1328 阅读 · 0 评论