sql >> Database >  >> RDS >> Mysql

Converteer mysql binair naar postgresql bytea

Het equivalent van binary type in MySQL is bytea in PostgreSQL.

Je kunt pgloader gebruiken (eenvoudigste manier)

Maak na het installeren van pgloader een eenvoudig 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;

Voer het uit in uw terminal:

pgloader test.load

Een andere manier is het gebruik van mysqldump

1. Dump het met de hex-blob-optie

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

2. Doe sed zodat het bij u kan worden ingevoegd bytea typ kolom

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

3. Laden in uw PostgreSQL-tabel

\i '/path_to_file/pg.dump'

Referentie



  1. Oracle krijgt 1 uur terugdatum

  2. mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... verwacht dat parameter 1 resource is

  3. Hoe haal ik alle rijen in mijn DB op?

  4. Tellen op basis van voorwaarde in SQL Server