Những tính năng PostgreSQL ít được biết đến
(hakibenita.com)-
Cách biết số hàng được sửa/thêm khi Insert on Conflict (Upsert):
xmax -
Cấp quyền cho một cột cụ thể
-
So khớp nhiều mẫu:
SIMILAR TOhoặc biểu thức chính quy~ -
Xem giá trị sequence hiện tại mà không tăng nó:
pg_sequence_last_value() -
Để dùng SQL nhiều dòng cùng với
\COPY: dùngTEMPORARY VIEWhoặcCOPYvới\g -
Chặn việc đặt giá trị cho khóa được tạo tự động: chỉ định
GENERATED ALWAYSkhi tạo bảng (thay vìGENERATED BY DEFAULT) -
Tạo bảng pivot: dùng
pandas.pivot_table,\crosstabviewhoặc extensiontablefunc -
Dollar Quoting
→ Mọi ký tự giữa $$ và $$ đều được coi là chuỗi
→ Có thể dùng Tag bên trong như $JSON$ / $function$
→ Thêm ::jsonb để tạo nhanh đối tượng jsonb
- Gắn comment cho đối tượng DB:
COMMENT ON TABLE/COLUMN, cũng có thể dùng Dollar Quoting để thêm mô tả chuỗi dài
→ Viết: COMMENT ON TABLE sale IS 'Sales made in the system';
→ Xem: \d+ sale
- Ghi lịch sử riêng cho từng DB
→ \set HISTFILE ~/.psql_history- :DBNAME
-
Đặt tự động hoàn thành thành chữ hoa:
\set COMP_KEYWORD_CASE upper -
Tạm dừng:
pg_sleep(giây),pg_sleep_for('4 minutes 14 seconds') -
Lấy dòng đầu/cuối của nhóm mà không cần subquery:
DISTINCT ON (cột nhóm) -
Tạo UUID mà không cần extension
uuid-ossp:gen_random_uuid()tạo UUID version 4 -
Tạo dữ liệu ngẫu nhiên có thể tái lập: dùng cùng seed với
setseed() -
Thêm ràng buộc mà không kiểm tra ngay dữ liệu hiện có: khi
ALTERdùngNOT VALIDđể thêm điều kiện trước, rồi chạy kiểm tra dữ liệu cũ riêng bằngALTER VALIDATE -
Dùng tính năng giống Synonym của Oracle: thay đổi
search_path(hữu ích khi Zero Downtime Migration) -
Tìm các Range chồng lấn: toán tử
OVERLAPS
4 bình luận
Có phải trên GeekNews dạo này toàn đăng tin về postgres quá rồi không! (Đùa thôi.)
Bên mình cũng chủ yếu dùng pg cho sản phẩm, nên chỉ biết cảm ơn mà thôi. :)
Dạo này postgres đang là xu hướng nên mới vậy đó..!?
Postgres là đỉnh nhất
Tôi đồng ý.