如何从A表中的数据更新到B表中,两个表中有相同的姓名字段。即A表有姓名字段,B表有姓名字段。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从A表中的数据更新到B表中,两个表中有相同的姓名字段。即A表有姓名字段,B表有姓名字段。相关的知识,希望对你有一定的参考价值。

例:A表: B表:
姓名 A字段 姓名 A字段
张三 1 张三 23
李四 2 李四 23
。 3 。 。
。 。 。 。
问,如何把A表中的A字段的内容代替B表中姓名相同的A字段内容。
在线等。谢谢!

update A表 set A表.A字段=(select B表.A字段 from B表 where A表.姓名=B表.姓名) 参考技术A update B表
set A字段=A表.A字段
from B表
left join A表
on B表.姓名=A表.姓名

参考资料:=

参考技术B update B set B.A字段=(select A.A字段 from A where A.姓名=B.姓名);
经过mysql测试,运行成功。
参考技术C update
    (select A.bnum ,A.newqiantity,B.qiantity from A left join B on A.bnum=B.bnum) AS C
set C.newqiantity = C.qiantity
where C.bnum =XX

从java批量更新的两个不同表中的一个表中插入max + 1

【中文标题】从java批量更新的两个不同表中的一个表中插入max + 1【英文标题】:Insert max + 1 from one table in two different table in batch update from java 【发布时间】:2016-11-30 09:41:59 【问题描述】:

我需要在 2 个具有引用关系的表中自动递增值。我的要求是在两个表中插入数据:- 表 A = Rowid ,其他列 表 B = Rowid ,其他列 我需要在两个表中插入来自不同方法的数据。 目前,我采用了这种方法:- 一种。从表 A 中查询最大值并将其加 1。 湾。使用批量更新在步骤 1 中获得值的两个表中插入数据。 但是,方法的缺陷是,如果两个用户/线程同时调用此方法,它们最终可能具有相同的值,我将在表 A 上得到引用完整性错误,而表 B 将有 2 行具有相同的行 id。

我可以同步我的方法来避免这种情况,但是由于其他一些功能,我有多种不同的方法在做同样的事情。

执行此操作的理想方法是使用自动生成的列,但 DBA 不允许这样做。另外,这两个表之间的引用完整性需要由应用程序维护,DBA不允许实际约束。

我在 java 端使用 Spring jdbctemplate,在数据库端使用 DB2。但是,问题与 Poth 无关。

【问题讨论】:

请注意,我知道有很多问题看起来与此类似。但现在一个正在更新两个表,也来自外部进程。 我假设不能使用 SEQUENCE 或更高的隔离级别。对吗? @data_henrik 右 DBA 要求在应用程序代码中处理。 【参考方案1】:

SELECT MAX()+1 不是为大量并发事务创建序列的可接受方式。

DBA 拒绝使用 DB2 的并发特性,例如 ISOLATION LEVELIDENTITYSEQUENCE 对象是不幸的。

有一些可以使用的应用解决方法:

将第一条语句包装在 FINAL TABLE 中以返回插入的值,包括为 TableA.rowid 生成的 MAX()+1。

使用准备好的语句的返回键:

PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
PreparedStatement prepareStatement(String sql, String[] columnNames)

然后将返回的值应用到TableB.rowid

【讨论】:

完全同意你的看法。唉,许多人犯了这个 max + 1 的错误,而不是让系统管理自动增量并检索结果,这要归功于 final table ... 老兄把它调低一点。真的很可怜,你没有提到参照完整性。

以上是关于如何从A表中的数据更新到B表中,两个表中有相同的姓名字段。即A表有姓名字段,B表有姓名字段。的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER中,如何把一个表中的数据导入到另一个表中?

如何从 SQL Server 2005 中另一个表中的相应数据更新一个表中的数据

SQL数据库中如何从A表自动更新数据到B表?

在EXCEL中如何将其中一个表中的数据插入另一个表中,两表中其有一有列是相同的?怎么把两个表合为一个?

SQL:如何将一个表中某个字段的值全部更新到另外一个表相应的字段

有A和B两个顺序表,数据都为从小到大排列,如何把它们合并从一个顺序表C