sql >> Databasteknik >  >> RDS >> Mysql

Konvertera mysql binär till postgresql bytea

Motsvarigheten till binary typ i MySQL är bytea i PostgreSQL.

Du kan använda pgloader (enklaste sättet)

När du har installerat pgloader, skapa ett enkelt skript 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

Ett annat sätt är att använda mysqldump

1. Dumpa det med hex-blob-alternativ

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å att den kan infogas till dig bytea typ kolumn

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

3. Ladda in i din PostgreSQL-tabell

\i '/path_to_file/pg.dump'

Referens a>



  1. Hitta och ersätt en del av texten i ett fält med MySQL

  2. Flask-Sqlalchemy:DB-frågor returnerar inte ny data

  3. Prestanda:Underfråga eller Gå med

  4. Hur skapar jag en användare i SQL-Server som bara har tillgång till en tabell och bara kan infoga rader