Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

26 tháng 4, 2015

Các thủ thuật trên Postgres (26/04/2015)

Bài viết này tôi nghiệm ra sau một số lần làm việc trên cơ sở dữ liệu Postgres.
Nó chỉ mang tính kinh nghiệm chứ không tập trung vào vấn đề kỹ thuật.
Tất cả các nội dung đều đã đảm bảo là hoạt động chính xác như tác giả mong muốn.
1. Làm thế nào để copy dữ liệu từ 1 bảng sang 1 bảng khác.
Trên công cụ pgAdmin đi kèm bộ cài postgress (Link download) bạn có thể dùng query tool để chạy lệnh sau:
INSERT INTO table_name
         [ ( column_name [, ...] ) ]
         query
Ví dụ:
INSERT INTO books (id, title, author_id, subject_id)
SELECT nextval('book_ids'), title, author_id, subject_id         
FROM book_queue WHERE approved;
Xem thêm tại: http://www.commandprompt.com/ppbook/x5504
Phần Insert from other tables
2. Cast kiểu giá trị trong postgres
Để cast từ string sang integer trong postgres ta dùng hàm cast theo cấu trúc sau:
cast( var1 as int)
Nếu muốn xử lý trong trường hợp xâu là rỗng (không phải null) thì dùng lệnh sau:
cast( nullif(var1, '') as int)
3. Sinh chuỗi UUID cho bảng trong Postgres
Để sinh chuỗi UUID cho bảng trong Postgres ta sử dụng extension đi kèm bộ cài.
Để kiểm tra xem extension này có đang chạy không ta thử bằng truy vấn sau:
Select uuid_in(md5(random()::text || now()::text)::cstring);
Nếu có kết quả đầu ra là một uuid thì ok, nếu không thì phải cài extension này bằng lênh:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Xem thêm