sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera en bytekolumn till OID samtidigt som du behåller värden

En kolumn av typen Oid är bara en referens till det binära innehållet som faktiskt är lagrat i systemets pg_largeobject tabell. När det gäller lagring är en Oid ett heltal på 4 byte. Å andra sidan är en kolumn av typen bytea är det faktiska innehållet.

För att överföra en bytea till ett stort objekt bör ett nytt stort objekt skapas med det filliknande API:t för stora objekt:lo_create() för att få ett nytt OID, sedan lo_open() i skrivläge, skriv sedan med lo_write() eller lowrite(), och sedan lo_close().

Detta kan rimligtvis inte göras med bara en gips.

I grund och botten skulle du behöva skriva en kod på ~10 rader på det språk du väljer (minst ett som stöder API:et för stora objekt, inklusive plpgsql) för att göra denna konvertering.



  1. PHP &MySQL Hur man visar kategorier alla underkategorier från databasen

  2. Mysql:resultat från de senaste sju dagarna

  3. Är din databas säker? Tänk om

  4. mysql_fetch_assoc()-fel när data i mysql-fältet ändras