[英]how to update Tables in mysql from another database
I'm trying to UPDATE a table using other database. 我正在尝试使用其他数据库更新表。
I have 2 databases called A_DB and B_DB 我有2个名为A_DB和B_DB的数据库
In each database I have a table called prvn with these columns and values : 在每个数据库中,我都有一个名为prvn的表,其中包含这些列和值:
A_DB. prvn :
id (PK, A_I) | dm | Name | edt |
1 1001 David 1
2 1001 Sam 1
3 1002 Samin 0
---------------------------------------------
B_DB. prvn :
id | dm | Name | edt |
1 1001 Da 0
2 1001 Sa 0
I inserted new values from A_DB into B_DB with this code : 我使用以下代码将A_DB中的新值插入B_DB中:
INSERT INTO B_DB.prvn
SELECT * FROM A_DB.prvn
WHERE A_DB.prvn.id NOT IN (SELECT id FROM B_DB.prvn)
But now I want to Update B_DB values with A_DB values when edt field is change So I use this code : 但是现在我想在edt字段更改时用A_DB值更新B_DB值,所以我使用以下代码:
UPDATE B_DB.prvn SET
B_DB.prvn.id = A_DB.prvn.id, B_DB.prvn.dm = A_DB.prvn.dm, B_DB.prvn.Name = A_DB.prvn.Name
WHERE A_DB.prvn.edt=1 AND A_DB.prvn.edt <> B_DB.prvn.edt
But it doesn't work. 但这是行不通的。 Please help how to fix it 请帮忙解决
it will help you to update one table from another. 它将帮助您从另一个表更新一个表。
UPDATE B_DB.prvn a INNER JOIN A_DB.prvn b
ON a.id = b.id SET a.id = b.id, a.dm=b.dm,
a.Name = b.Name where b.edt=1 and a.edt<>b.edt
I think you want an update join here: 我认为您想在这里加入更新:
UPDATE B_DB.prvn b
INNER JOIN A_DB.prvn a
ON a.id = b.id
SET
a.prvn.dm = b.prvn.dm,
a.prvn.Name = b.prvn.Name,
a.edt = b.edt
WHERE
a.prvn.edt = 1 AND b.prvn.edt <> 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.