13 điểm bởi xguru 2021-11-10 | 4 bình luận | Chia sẻ qua WhatsApp
  • 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 TO hoặ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ùng TEMPORARY VIEW hoặc COPY với \g

  • Chặn việc đặt giá trị cho khóa được tạo tự động: chỉ định GENERATED ALWAYS khi tạo bảng (thay vì GENERATED BY DEFAULT)

  • Tạo bảng pivot: dùng pandas.pivot_table, \crosstabview hoặc extension tablefunc

  • Dollar Quoting

→ Mọi ký tự giữa $$$$ đề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 ALTER dùng NOT VALID để thêm điều kiện trước, rồi chạy kiểm tra dữ liệu cũ riêng bằng ALTER 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

 
galadbran 2021-11-11

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. :)

 
xguru 2021-11-11

Dạo này postgres đang là xu hướng nên mới vậy đó..!?

 
nallwhy 2021-11-10

Postgres là đỉnh nhất

 
roxie 2021-11-10

Tôi đồng ý.