问题标签 [on-duplicate-key]

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 投票
1 回答
1772 浏览

mysql - 插入更新多行mysql

我需要将多条记录添加到 mysql 数据库中。我尝试了多个查询并且工作正常,但效率不高。所以我只用下面的一个查询尝试了它,

但它总是更新表(列是block_id、block、length、width、rows)。我是否应该通过添加block_id对查询进行任何更改。block_id是主键。任何帮助,将不胜感激。

0 投票
1 回答
209 浏览

mysql - 这是有效的“重复键”语法吗?

我现在没有地方测试这个,我希望有人知道,所以我不必等到明天才能找到......

可以重写为:

是的?

或者不,因为PropIDandUpdateOn不能被on dup部件访问,而不是在值列表中......?

我尝试使用 SQLFiddle,但它告诉我没有 DDL 或 DML 语句,只有选择。


所以我测试了小提琴......

变成:

这不是预期的输出......

所以......我猜这两件事真的不做同样的事情,我不需要按照我最初建议的方式重新编写代码。 它是有效的语法,但不是正确的结果。

只是为了澄清(但我相信你可以从最初的on duplicate key陈述中看出),这是我最终应该得到的输出......

谢谢您的帮助!

0 投票
2 回答
106 浏览

mysql - SQL:由于我添加了唯一键,主键的自动增量计数不同?

今天我在我的表中添加了两个唯一键 ( external_id, name)。从那时起,id-column(主键)的计数非常奇怪,我无法重现该问题。

我没有删除任何行,但我更新了 ( ON DUPLICATE KEY)。我希望主键id被线性计数,例如:1、2、3、4、5、6,...

结构:

内容:

编辑: 最新的 ID 是23. 在PHPMyAdmin的行统计中,下一个自动索引被宣布为27!24到26怎么办?我很困惑。

结构有什么问题还是我没听说过的秘密?提前致谢!

0 投票
4 回答
13511 浏览

mysql - 具有多个唯一键的 MySQL“插入 ... 在重复键上”

我一直在阅读如何在重复键上使用 MySQL 插入,看看它是否允许我避免选择一行,检查它是否存在,然后插入或更新。然而,当我阅读文档时,有一个领域让我感到困惑。这就是文档所说的:

如果您指定 ON DUPLICATE KEY UPDATE,并且插入的行会导致 UNIQUE 索引或 PRIMARY KEY 中的重复值,则会执行旧行的 UPDATE

问题是,我不想知道这是否适用于我的问题,因为我不插入新的“条件”是存在两列等于某个值的行,不一定主键相同。现在我想象的语法是这样的,但我不知道它是否总是插入而不是替换:

问题是,event_id 和 user_id 不是主键,但如果表 'attendance' 中的一行已经包含具有这些值的列,我只想更新它。否则我想插入它。ON DUPLICATE 这甚至可能吗?如果没有,我还可以使用什么其他方法?

0 投票
1 回答
115 浏览

php - 使用php从表中未按正确顺序排列数据

我正在尝试使用 Zend 将数据从提要插入数据库,并在表中添加一个列 date_updated ,以便每当提要中的文章更新时,该列也会更新。但问题是,第一篇文章是先插入的,然后再插入其他文章。因此,当我尝试根据 date_updated DESC 选择前 10 篇文章时,最后插入的文章会排在最前面,如果我使用 ASC,那么较旧的文章会被选中。请建议我如何进行。我正在写的查询是:

然后我使用

0 投票
1 回答
97 浏览

postgresql - 为什么 PostgreSQL 没有 ON DUPLICATE KEY?

这是永久拒绝的功能请求还是 Postgres 特有的东西?

我读过 Postgre 可能比 InnoDB 具有更高的性能,但也有可能减少序列化的可能性更大(我很抱歉我没有来源,由于我的菜鸟和记忆力,请给这个声明一个广泛的铺位)并想知道是否这可能与此有关。

与 MySQL 相比,Postgres 的功能惊人,这就是我切换的原因。我已经极大地减少了代码行和不必要的复制。

这只是一个小烦恼,但我很好奇它是否因为UPDATE当时的INSERT解决方法而被认为是不必要的,或者它是否很难开发(可能与感知的附加值相比),比如boost::lockfree::queue传递“任何东西”的能力(或者如果这是别的东西)。

0 投票
2 回答
3031 浏览

sql - 当匹配的更新不起作用时 oracle 合并

这里有一些有趣的东西!该merge声明工作正常。但是当值匹配时,它不会按预期将状态更新为“B”。知道为什么吗?

[也尝试使用重复更新,但无法使用错误]

请分享您的知识,谢谢!

0 投票
1 回答
256 浏览

php - 使用 xpath 和重复密钥更新的 Codeigniter

寻求一点建议。

我的网站数据库有一个更新脚本,但到目前为止 - 我还无法弄清楚如何将其转换为 Codeigniter 框架,即。它作为自己的文件保存在我网站的主目录中,并从那里执行。

有几件事让我很难弄清楚:

  1. 它使用 php xpath - 不难看出我将如何将其转换为 Codeigniter 控制器,但我想知道 update_batch 是否对我来说是一个更好的解决方案,而不是使用 foreach 循环,因为每行仅更新 1 个索引列. 然而,这方面几乎没有可用的文档……</p>

  2. 我的代码利用了 MySql 的 On duplicate 功能,据我所知,Codeigniter 不支持该功能。

代码:

任何人都可以指导我如何将上述内容实现到控制器/模型环境中的正确方向 - 当然,如果有的话,请告诉我执行上述所有操作的最有效方法?

干杯!

0 投票
2 回答
2412 浏览

mysql - SQL INSERT 没有重复(没有主键或唯一键)

假设我有一个用于生成表 B 的表 A。我没有可用于生成表 B 的主键或唯一键ON DUPLICATE KEY

我的表 B 有 3 列:A、B 和 C。

INSERT只有当该行已经不存在时,我才想要这样做。我可以确定该行是否存在是 A 和 B 的组合。我使用WHERE NOT EXISTS语句来执行此操作。

如果表 B 为空,则插入该行。但是,一旦表 B 有记录,即使表 B 中不存在行,也不会插入任何行。

0 投票
0 回答
395 浏览

php - 在 Codeigniter 中使用“ON DUPLICATE KEY UPDATE”的最佳方式

所以,我见过几个不同的例子,包括。更改 Codeigniter 默认文件,扩展 Active 记录类并使用 insert_string 和 insert_id 并手动添加到 Codeigniter 模型脚本......每个解决方案都与 Codeigniter 的不同旧版本相关,老实说 - 我的大脑被炸了!

实现此功能的最佳、最有效的方法(2013 年)是什么?

附言。是的,我知道(2013 年)最好的方法是使用 Laravel 等。但我必须使用 Codeigniter ......