Mysql 对两个关系表执行更新
我有一个自动生成ID列的地址表,该ID在客户表中引用,我无法使用下面的代码执行更新操作Mysql 对两个关系表执行更新,mysql,sql,sql-server,join,sql-update,Mysql,Sql,Sql Server,Join,Sql Update,我有一个自动生成ID列的地址表,该ID在客户表中引用,我无法使用下面的代码执行更新操作 UPDATE mydb.adrs SET adrs_col1 = _adrs_col1, adrs_col2 = _adrs_col2 FROM mydb.adrs AS ad JOIN mydb.customer AS cu ON ad.adrs_id = cu.adrs_
UPDATE mydb.adrs
SET adrs_col1 = _adrs_col1,
adrs_col2 = _adrs_col2
FROM mydb.adrs AS ad
JOIN mydb.customer AS cu
ON ad.adrs_id = cu.adrs_adrs_id
WHERE customer_id = _customer_id;
_customer\u id是传递给客户的id
_adrs_col1是传入的地址
_adrs_col2也是传入的地址(这是第二个地址)在MySQL中,对于传入的客户ID,您应该使用此语法进行update with join,因为该ID已经存在,因此可以证明更新操作是正确的
UPDATE mydb.adrs ad
JOIN mydb.customer AS cu
ON ad.adrs_id = cu.adrs_adrs_id
SET adrs_col1 = _adrs_col1,
adrs_col2 = _adrs_col2
WHERE customer_id = _customer_id;
对于此类操作,您需要使用一个事务和两个不同的update语句。小心死锁!这将更新客户表?添加一个清晰的数据样本和导出的结果。。我不在您的数据库中,我不知道您要更新哪个表。。antway查询更新了ADR,但在mysql中,您还可以更新两个TableUmm。。。你好,我不是原来的海报:)@Hogan。对不起。无论如何此查询只更新update mydb.adrs中提到的表,因此如果需要另一个表,可以更改update子句中的引用。。如果您需要更新多个表,您可以添加表名逗号分隔..希望我的评论是明确和有用的。对不起again@scaisEdge我已经试过了,但我想用where子句来执行,因为我想对传入的客户id执行更新