我当时正致力于将数据从MYSQL迁移到postgre。如何在postgre表中插入mysql数据?提前感谢代码:
try {
$conexion = new PDO("mysql:host=$direccion;dbname=$base_d", $us, $contra);
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$consulta = $conexion->prepare('SELECT * FROM ' . $tabla_b);
//Ejecuto la consulta
$consulta->execute();
$consulta_array = $consulta->fetchAll();
var_export($consulta_array);
$dbconn = pg_connect("host=$direccion2 dbname=$base_d2 user=$us2 password=$contra2")
or die('No se ha podido conectar: ' . pg_last_error());
$insercion= pg_copy_from($conexion, $tabla_b2, $consulta_array,",");
} catch (PDOException $e) {
echo "Error conectando con la base de datos: " . $e->getMessage();
}
}发布于 2016-02-15 15:07:11
您是否尝试过使用Pgloader
我发现将MySql迁移到Postgres是一种非常快速有效的方法。
下面是如何继续使用Pgloader的快速示例。
创建一个包含以下内容的.load文件。(您可以排除前面带有"--“的不需要的行)
load database
from mysql://root@localhost/base_d
into postgresql:///base_d
WITH include drop, create tables, no truncate,
create indexes, reset sequences, foreign keys
-- SET maintenance_work_mem to '128MB', work_mem to '12MB', search_path to 'base_d'
CAST type datetime to timestamptz
drop default drop not null using zero-dates-to-null,
type date drop not null drop default using zero-dates-to-null
-- MATERIALIZE VIEWS film_list, staff_list
-- INCLUDING ONLY TABLE NAMES MATCHING ~/film/, 'actor'
-- EXCLUDING TABLE NAMES MATCHING ~<ory>
BEFORE LOAD DO
$$ create schema if not exists base_d; $$; 请注意,在这里,pgloader将受益于在MySQL数据库中找到的元数据信息,以创建能够托管所述数据的PostgreSQL数据库,然后加载数据。
请注意,我们使用的是pgloader的MATERIALIZE VIEWS子句:此处选择的视图将连同其内容一起迁移到PostgreSQL。
从 .下载 Pgloader
pgloader现在可以使用pgloader命令迁移数据。
$ pgloader base_d.load (保存上述内容的文件)
参考:http://pgloader.io/howto/mysql.html
https://stackoverflow.com/questions/33102030
复制相似问题