Questions tagged «insert-update»

11
插入MySQL表或更新(如果存在)
我想向数据库表中添加一行,但是如果存在具有相同唯一键的行,我想更新该行。 例如: insert into table (id, name, age) values(1, "A", 19) 假设唯一键为id,并且在我的数据库中有一行id = 1。在这种情况下,我想用这些值更新该行。通常,这会产生错误。 如果使用insert IGNORE它,将忽略该错误,但仍不会更新。

6
如何在PostgreSQL中进行UPSERT(MERGE,INSERT…ON DUPLICATE UPDATE)?
这里一个非常常见的问题是如何进行upsert,这是MySQL调用的内容,INSERT ... ON DUPLICATE UPDATE并且该标准支持该MERGE操作。 鉴于PostgreSQL不直接支持它(在9.5版之前),您该怎么做?考虑以下: CREATE TABLE testtable ( id integer PRIMARY KEY, somedata text NOT NULL ); INSERT INTO testtable (id, somedata) VALUES (1, 'fred'), (2, 'bob'); 现在,假设你想“UPSERT”的元组(2, 'Joe'),(3, 'Alan'),因此新表的内容是: (1, 'fred'), (2, 'Joe'), -- Changed value of existing tuple (3, 'Alan') -- Added new tuple 那就是人们在讨论时谈论的话题upsert。至关重要的是,在存在多个事务处理同一个表的情况下,任何方法都必须安全 -通过使用显式锁定或以其他方式抵御由此产生的竞争条件。 …


7
SQL Server插入(如果不存在)最佳实践
我有一个Competitions结果表,一方面保存了团队成员的姓名和排名。 另一方面,我需要维护一个唯一的竞争对手名称表: CREATE TABLE Competitors (cName nvarchar(64) primary key) 现在我在第一个表中有大约200,000个结果,当竞争对手表为空时,我可以执行以下操作: INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults 查询只需要大约5秒钟即可插入大约11,000个名称。 到目前为止,这并不是一个至关重要的应用程序,因此当我收到包含约10,000行的新比赛结果时,我可以考虑每月一次截断Competitors表。 但是,如果有新的和现有的竞争对手加入新的结果,最佳实践是什么?我不想截断现有竞争对手表 我只需要对新竞争者执行INSERT语句,如果存在,则什么也不做。

2
插入……选择……重复键更新
我正在执行插入查询,其中如果已经存在唯一键,则许多列中的大多数都需要更新为新值。它是这样的: INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE ...; …

2
为什么在我的INSERT…ON DUPLICATE KEY UPDATE中影响2行?
我正在INSERT ... ON DUPLICATE KEY UPDATE为PRIMARY KEY下表做一个: DESCRIBE users_interests; +------------+---------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------------------+------+-----+---------+-------+ | uid | int(11) | NO | PRI | NULL | | | iid | int(11) | NO | PRI | NULL | | | preference …

5
更新MySQL中的列
我有一个table1具有三列和一堆行的表: [key_col|col_a|col_b] 我想用一组值更新col_a(即保持col_b不变),像这样: INSERT INTO table1 AS t1 (key_col, col_a) VALUES ("k1", "foo"), ("k2", "bar"); 但这不起作用,我该怎么做?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.