sql >> データベース >  >> RDS >> Mysql

mysqlバイナリをpostgresqlbyteaに変換します

    binaryに相当 MySQLのタイプはbyteaです PostgreSQLで。

    pgloader を使用できます (最も簡単な方法)

    pgloaderをインストールした後、簡単なスクリプト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;
    

    ターミナルで実行します:

    pgloader test.load
    

    別の方法は、mysqldumpを使用することです

    1。 hex-blobオプションでダンプします

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

    2。 byteaに挿入できるようにsedを実行してください 列を入力

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

    3。 PostgreSQLテーブルにロードする

    \i '/path_to_file/pg.dump'
    

    リファレンス



    1. 特別なプリンシパル 'sa' は使用できません

    2. postgresqlにnanosecでタイムスタンプを保存する最もエレガントな方法は何ですか?

    3. OOPプログラミングのクラスから複数のデータベースレコードを返すにはどうすればよいですか?

    4. クエリという名前のJPAのIN句で動的パラメータを使用するにはどうすればよいですか?