upsert相关内容
按照this评论的指示。 CREATE OR REPLACE FUNCTION test_upsert( _parent_id int, _some_text text) RETURNS text LANGUAGE plpgsql AS $func$ DECLARE a text; BEGIN INSERT INTO parent_tre
..
我有一个Postgres表,该表对多个列具有唯一约束,其中一列可以为空。对于每种组合,我只想允许该列中有一条NULL记录。 create table my_table ( col1 int generated by default as identity primary key, col2 int not null, col3 real, col4 int, c
..
我需要为 MS-Access 2000 编写一个 SQL 查询,这样如果行存在则更新,如果不存在则插入.(我相信这被称为“upsert") 即 如果行存在... UPDATE Table1 SET (...) WHERE Column1='SomeValue' 如果它不存在... 插入表 1 值 (...) 这可以在一个查询中完成吗? 解决方案 您可以通过使用带有 LE
..
..
有没有一种简单的方法可以在行不存在时INSERT,或者如果存在则UPDATE,使用一个MySQL 查询? 解决方案 使用 INSERT ... ON DUPLICATE KEY UPDATE.例如: INSERT INTO `用法`(`thing_id`、`times_used`、`first_time_used`)价值观(4815162342, 1, 现在())重复密钥更新`times
..
在 this SO answer 关于实体框架和 MERGE,如何编码的示例如下: public void SaveOrUpdate(MyEntity entity){如果(实体.Id == 0){context.MyEntities.AddObject(entity);}别的{context.MyEntities.Attach(entity);context.ObjectStateManage
..
从 MySQL 4.1.0 开始,可以添加 ON DUPLICATE KEY UPDATE 语句来指定插入值时的行为(使用 INSERT 或 SET 或 VALUES) 已经在目标表中PRIMARY KEY 或一些 UNIQUE 字段.如果 PRIMARY KEY 或某些 UNIQUE 字段的值已在表中,则 INSERT 将替换为 UPDATE. ON DUPLICATE KEY UPDAT
..
我正在使用下面的语句将一些数据更新/插入到表中,如果我在没有参数的情况下运行它,那很好.但是,一旦我尝试使用它抛出的参数执行它: SQL0418N - 语句包含使用无类型参数标记、DEFAULT 关键字或无效的空值. 我已阅读错误信息 here,但我仍在为为什么我的语句无法执行而苦苦挣扎. --此语句有效合并到 AB.Testing_Table A使用 (VALUES('TEST',
..
如何在 pymongo 中进行批量更新插入?我想更新一堆条目,一次做一个非常慢. 几乎相同问题的答案在这里:在 MongoDB 中批量更新/upsert? 接受的答案实际上并没有回答问题.它只是提供了 mongo CLI 的链接以进行导入/导出. 我也愿意解释为什么做批量 upsert 是不可能的/不是最佳实践,但请解释解决此类问题的首选解决方案是什么. 解决方案 现代版
..
我正在运行一个将大量数据插入 Postgres 数据库的 python 脚本,我使用单个查询来执行多行插入: INSERT INTO table (col1,col2) VALUES ('v1','v2'),('v3','v4') ...等 我想知道如果它碰到重复的插入键会发生什么.它会停止整个查询并抛出异常吗?或者它会仅仅忽略该特定行的插入并继续前进吗? 解决方案 INSERT 只会
..
我有一个简单的 INSERT 查询,当主键重复时,我需要使用 UPDATE 代替.在 MySQL 中这似乎更容易,在 Oracle 中似乎我需要使用 MERGE. 我能找到的所有 MERGE 示例都有某种“源"和“目标"表,在我的例子中,源和目标是同一个表.我无法理解这些示例来创建自己的查询. MERGE 是唯一的方法还是有更好的解决方案? INSERT INTO movie_rat
..
我有一个只有一个主键的表.当我尝试插入时,尝试使用现有键插入行可能会导致冲突.我想允许插入更新所有列?有什么简单的语法吗?我试图让它“更新"所有列. 我使用的是 PostgreSQL 9.5.5. 解决方案 UPDATE 语法 要求明确命名目标列.避免这种情况的可能原因: 您有很多列,只想缩短语法. 除了唯一的列之外,您知道列名. "All columns" 必须表示"
..
我为经典的“如何插入新记录或更新已存在的记录"找到了一些“可能"的解决方案,但我无法让它们中的任何一个在 SQLite 中工作. 我有一个表定义如下: 创建表书ID 整数主键自动增量,名称 VARCHAR(60) 唯一,类型 ID 整数,级别整数,看到 INTEGER 我想要做的是添加一个具有唯一名称的记录.如果名称已经存在,我想修改字段. 谁能告诉我怎么做? 解决方案 看
..
假设表结构为MyTable(KEY, datafield1, datafield2...). 我经常想更新现有记录,或者插入一条不存在的新记录. 基本上: IF(密钥存在)运行更新命令别的运行插入命令 写这个的最佳表现方式是什么? 解决方案 不要忘记事务.性能很好,但简单的(如果存在..)方法非常危险. 当多个线程将尝试执行插入或更新时,您可以轻松获取主键违规. @
..
我一直在尝试在 solr 中执行相当于 UPSERT(插入或更新,如果已经存在)的操作.我只知道什么不起作用,我阅读的 solr/lucene 文档没有帮助.这是我尝试过的: curl 'localhost:8983/solr/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"1","name":{"设置":"史
..
我一直在尝试在 drupal 中运行一个查询,如果条目已经存在,它将更新条目,或者如果不存在则插入一个新条目.代码现在看起来像这样: db_query("IF EXISTS (SELECT %d FROM {uc_posten_packages.pid})更新 {uc_posten_packages} SET 标题 = '%s',标签 = '%s',成本 = '%d',长度 = '%d',宽度
..
Jacob 问了一个完美的问题:给我MERGE 语法. 那里的每个答案都会立即跳转到他们能想到的最复杂的情况;用多余的混淆来掩盖语法. Marc 给出了答案: MERGEmember_topic AS 目标使用someOtherTable AS 源在target.mt_member = source.mt_memberAND source.mt_member = 0AND sou
..
我发现使用可写 CTE 来模拟 PostgreSQL 中的 upsert 是一个非常优雅的解决方案,直到我们在 Postgres 中获得实际的 upsert/merge.(参见:https://stackoverflow.com/a/8702291/558819) 但是,有一个问题:如何插入默认值?使用 NULL 当然不会有帮助,因为 NULL 被显式插入为 NULL,这与 MySQL 不同
..
我正在尝试对表进行单行插入/更新,但所有示例都是针对集合的. 谁能修复我的语法: MERGE member_topic ON mt_member = 0 AND mt_topic = 110匹配后更新 SET mt_notes = 'test'当不匹配时,插入 (mt_member, mt_topic, mt_notes) VALUES (0, 110, 'test') 每个 marc_
..
很多时候,我想对我的一个用户运行查询,我希望在其中存储一行并与该用户关联,以 1 对 1 的关系.所以让我们说(这只是一个随意的例子),我有一个表格来跟踪用户的汽车,以及一些关于汽车的信息.每个用户可以拥有 0 辆或 1 辆汽车.如果用户没有汽车,则表中没有该用户的条目. cars 表(同样,只是一个例子):id、user_id、car_make、car_model 所以,当我更新这个
..