sql >> Database teknologi >  >> RDS >> Mysql

Konverter mysql binær til postgresql bytea

Det svarer til binary type i MySQL er bytea i PostgreSQL.

Du kan bruge pgloader (enkleste måde)

Efter installation af pgloader skal du oprette et simpelt script test.load

load database  
from mysql://username:[email protected]/database_name
into postgresql://postgres:[email protected]/database_name

WITH include drop, create tables, create indexes, reset sequences

  SET maintenance_work_mem to '128MB',
      work_mem to '12MB'

 CAST type binary TO bytea drop typemod  using byte-vector-to-bytea;

Kør det i din terminal:

pgloader test.load

En anden måde er at bruge mysqldump

1. Dump det med hex-blob mulighed

mysqldump -u username -p -h host --skip-quote-names --hex-blob --skip-triggers \
--compact --no-create-info your_db your_table > prepg.dump

2. Gør sed så det kan indsættes til dig bytea type kolonne

sed "s/0x\([0-9A-F]*\)/decode('\1','hex')/g" prepg.dump > pg.dump

3. Indlæs i din PostgreSQL-tabel

\i '/path_to_file/pg.dump'

Reference



  1. Advarsel:mysql_fetch_array():det angivne argument er ikke et gyldigt MySQL-resultat

  2. Mysql::Fejl:Dubleret indtastning

  3. Automatisk stigning med dvale

  4. Forskel mellem GiST og GIN indeks