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

Chuyển đổi cột bytea thành OID trong khi vẫn giữ nguyên các giá trị

Cột loại Oid chỉ là tham chiếu đến nội dung nhị phân thực sự được lưu trữ trong pg_largeobject của hệ thống bàn. Về bộ nhớ, một Oid là một số nguyên 4 byte, ngược lại, một cột kiểu bytea is nội dung thực tế.

Để chuyển một bytea thành một đối tượng lớn, một đối tượng lớn mới phải được tạo bằng API giống tệp của các đối tượng lớn:lo_create () để nhận OID mới, sau đó lo_open () ở chế độ ghi, sau đó ghi bằng lo_write () hoặc lowrite (), rồi đến lo_close ().

Điều này không thể được thực hiện một cách hợp lý chỉ với một diễn viên.

Về cơ bản, bạn sẽ cần viết một đoạn mã ~ 10 dòng bằng ngôn ngữ bạn chọn (ít nhất một đoạn mã hỗ trợ API đối tượng lớn, bao gồm cả plpgsql) để thực hiện chuyển đổi này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LIMIT được nhóm trong PostgreSQL:hiển thị N hàng đầu tiên cho mỗi nhóm?

  2. Làm cách nào để chỉ tham gia một hàng trong bảng đã tham gia với postgres?

  3. MigrationSchemaMissing (Không thể tạo bảng django_migrations (% s)% exc)

  4. Cách giám sát PostgreSQL bằng Nagios

  5. 7 mẹo thực hành tốt nhất để tải dữ liệu hàng loạt PostgreSQL