![](/img/trans.png)
[英]Postgres to Mysql - Transfer data from one database to another every day
[英]Transfer data from one database to another MYSQL
我在 phpmyadmin 中有 3 个数据库,在将数据从一个数据库迁移到另一个数据库时我需要一些帮助。
桌子:
CREATE TABLE ethernet.data(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
event TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
Count0 VARCHAR(10) NOT NULL,
Count1 VARCHAR(10) NOT NULL,
Count2 VARCHAR(10) NOT NULL,
FPY VARCHAR(10) NOT NULL,
)
桌子:
CREATE TABLE ethernet1.data1(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
event TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
Count0 VARCHAR(10) NOT NULL,
Count1 VARCHAR(10) NOT NULL,
Count2 VARCHAR(10) NOT NULL,
FPY VARCHAR(10) NOT NULL,
)
桌子:
CREATE TABLE fpydcih.data2(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
event TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FPYSVSL VARCHAR(10) NOT NULL,
FPYZ2FS VARCHAR(10) NOT NULL,
)
想法是从ethernet.data FPY 列导出最后 10 个值,从ethernet1.data1 FPY 列导出最后 10 个值,并将它们导出到fpydcih.data2表中。
这只是为了展示这个想法,我没有检查它,因为我不想创建 3 个模式。
SET @id1 = 0;
SET @id2 = 0;
INSERT INTO fpydcih.data2 (FPYSVSL, FPYZ2FS)
SELECT
t1.FPY FPYSVSL, t2.FPY FPYZ2FS
FROM
(
SELECT @id1 = @id1 + 1 id, FPY
FROM ethernet.data
ORDER BY id DESC
LIMIT 10
) t1
LEFT JOIN
(
SELECT @id2 = @id2 + 1 id, FPY
FROM fpydcih.data2
ORDER BY id DESC
LIMIT 10
) t2 ON t2.id = t1.id
;
你似乎想要union all
。 像这样的东西:
insert into fpydcih.data2 (id, event, count0, count1, count2, count3, fpa)
(select id, event, count0, count1, count2, count3, fpa
from ethernet.data
order by event desc
limit 10
) union all
(select id, event, count0, count1, count2, count3, fpa
from ethernet1.data1
order by event desc
limit 10
);
您也可以将其表述为两个单独的insert
。 或者,如果目标表不存在,请使用create table as
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.