PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Hàm min (uuid) không tồn tại trong postgresql

Tôi muốn ghi nhận câu trả lời của @ robin-salih, tôi đã sử dụng nó và triển khai min cho int, để tạo mã sau:

CREATE OR REPLACE FUNCTION min(uuid, uuid)
RETURNS uuid AS $$
BEGIN
    IF $2 IS NULL OR $1 > $2 THEN
        RETURN $2;
    END IF;

    RETURN $1;
END;
$$ LANGUAGE plpgsql;


create aggregate min(uuid) (
  sfunc = min,
  stype = uuid,
  combinefunc = min,
  parallel = safe,
  sortop = operator (<)
);

Nó gần như giống nhau, nhưng tận dụng lợi thế của chỉ mục B-tree, vì vậy hãy select min(id) from tbl hoạt động trong vài mili.

Tái bút Tôi không phải là chuyên gia về pgsql, có lẽ mã của tôi bị sai cách nào đó, hãy kiểm tra kỹ trước khi sử dụng trong sản xuất, nhưng tôi hy vọng nó sử dụng các chỉ mục và thực thi song song một cách chính xác. Tôi đã tạo nó chỉ từ mã mẫu, không đi sâu vào lý thuyết đằng sau các tổng hợp trong PG.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XÓA TỪ ... báo cáo lỗi cú pháp tại hoặc gần.

  2. Postgresql gem install pg 0.18.4 vượt qua, cài đặt gói không thành công

  3. Làm cách nào để kích hoạt trình biên dịch hàm PostgreSQL?

  4. Đo điểm chuẩn Giải pháp đám mây PostgreSQL được quản lý - Google Cloud:Phần thứ ba

  5. Chỉ mục GIN của PostgreSQL chậm hơn GIST cho pg_trgm?