问题标签 [sql-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
19758 浏览

mysql - SQL :具有动态列值分配的更新语句

想象一下下面的 sql 查询:

假设在执行更新之前 MAX(COL2) 为 1。

我的意图是,对于 ID=1 COL2 的更新,将其更新为 'max(COL2) + 1'(即 2),并且对于后续更新,重新评估 'MAX(COL2) + 1',以便对于 ID =2,COL2=3 和 ID=3,COL2=4 等等...

实际发生的是对于所有行 (ID=1,2,3,4,5),COL2 的值为 2。

是否有一种聪明的方法可以在每次更新时“重新评估” MAX(COL2) +1 的值?我意识到这样做可能会出现性能问题,但我仍然很好奇!有没有更好的选择(不涉及多个更新语句)?

顺便说一句:如果您想知道上述查询(嵌套内表)使用的语法,请参见此处:SQL:在嵌套 FROM 子句中的 UPDATE 语句中使用目标表

0 投票
3 回答
3159 浏览

mysql - MySQL 中是否有“如果没有这样的行插入 yyy 则更新值”?

我想更新 Mysql 5 上的表值,但如果键不存在,请创建它。

我发现这样做的方法是:

问题是:上述格式是否比其他方法效率低(因为插入只会发生一次并且更新会经常发生)?

例如:

此外:在 Mysql 中有没有更好的方法来做到这一点:例如一种:

更新:对于那些建议更换的人,这里是我的问题的扩展:“谢谢!我需要增加一个已经在表中的计数器(如果它存在)。如果没有为该列创建一个值为 1 的表行。如何使用这种格式进行更新(REPLACE)?”

0 投票
6 回答
75034 浏览

mysql - MySQL UPDATE 和 SELECT 一次完成

我有一个要执行的 MySQL 任务表,每一行都有一个任务的参数。
有许多工作应用程序(可能在不同的机器上)循环执行任务。
这些应用程序使用 MySQL 的本机 C API 访问数据库。

为了拥有一项任务,应用程序会执行以下操作:

  • 生成一个全局唯一的 id(为简单起见,假设它是一个数字)

  • UPDATE tasks
    SET guid = %d
    WHERE guid = 0 LIMIT 1

  • SELECT params
    FROM tasks
    WHERE guid = %d

  • 如果最后一个查询返回一行,我们拥有它并拥有要运行的参数

有没有办法在对服务器的一次调用中实现相同的效果(即“拥有”一行并获取其参数)?

0 投票
1 回答
1213 浏览

jsp - JSP/Servlets 触发 SQL 更新

我有一个小窗口,里面有一个 IRC 客户端,当用户登录到 jsp 页面时会打开它。我正在尝试找出一种在关闭弹出窗口后调用 SQL 更新语句的方法。

有人对我该如何做这件事有任何想法吗?

谢谢

〜凯尔G

0 投票
4 回答
3923 浏览

mysql - 如何在更新时加入表

我有以下查询:

它会查找特定城市中状态为 5 且超过 6 个月的记录(该日期存储在 LA)。这将返回大约 4k 个结果。我想将每条记录的状态值更新为 1,因此我的更新如下所示:

但它会停止并锁定数据库。我怀疑有问题,因为没有加入,但我尝试类似:

它显然不起作用,因为更新中没有“来自”。

编辑>我正在使用 MySQL

0 投票
2 回答
1359 浏览

sql - 如何在 Derby 中模拟 UPDATE x SET (col1, col2) = ( SELECT a,b FROM y )?

Derby 不支持这种语法:

(见这个错误)。除了在 Java 中创建一个循环来执行选择并发送 N 个更新之外,还有其他人有解决方法吗?

[编辑]请注意,我有 50 列和一个复杂的条件(与 x 和 EXISTS 等连接)。所以我想避免重复 SELECT 50 次,请:)

0 投票
2 回答
317 浏览

sql - 缺少值时更新数据库表

我有两张桌子:

账单 :

汇率:

这就是我想要做的:

我想将我的 Bill 表更新为

在此更新中,所有具有该特定日期条目的行都将获得新的报告货币数据。由于 Bill 表可以有多个符合更新条件的行,所以我遇到了以下问题:

对于 FxRate 表(该日期)中没有条目的行,ReportingCurrency 变为 NULL。我想返回nearest <= RateDate并获取汇率。是否可以使用同一更新语句中的修改或其他一些有效的方法?(我想避免使用光标)。

0 投票
5 回答
883 浏览

java - 更新数据库记录的最佳实践

假设您检索 100 条记录,并将它们显示在页面上。用户仅更新页面上的 2 条记录。现在您只想更新两条记录,而不是其他 98 条记录。

最好在页面上提交一个,然后以某种方式知道哪两个已更新,然后仅将这两个发送到数据库进行更新?

“不知何故”是什么样子的?

或者,您是否会为每一行设置一个更新提交按钮,并让它只更新与其关联的记录?

0 投票
5 回答
111115 浏览

sql - 如何使用 ms sql 进行更新和排序

理想情况下,我想这样做:

In English: 我想从数据库中获取前 10 条可用 (status=0) 消息并锁定它们 (status=10)。优先级更高的消息应该首先得到。

不幸的是,MS SQL 不允许在更新中使用 order by 子句。

无论如何如何规避这个?

0 投票
2 回答
241 浏览

sql - SQL 更新查询

我们将主键与字段 no、id 和 groupno 组合在一起

在 Access 中,诸如 WHERE 条件的WHERE no = '' & groupno = ''执行速度更快,而同样的事情会减慢 SQL 中的更新速度。

一旦我们提供了 no 和 groupno 的单个索引,它会更快吗?

如果我们提供具有 3 个三个字段的主键并且没有基于这些字段的单独索引,它是否将其视为组合键?