Запитання з тегом «upsert»

Що стосується питань, пов’язаних з виконанням операцій виведення (комбінування оновлення / вставки).

11
Вставте в таблицю MySQL або оновіть, якщо вона існує
Я хочу додати рядок до таблиці бази даних, але якщо рядок існує з тим самим унікальним ключем, я хочу оновити рядок. Наприклад: insert into table (id, name, age) values(1, "A", 19) Скажімо, унікальний ключ є id, і в моїй базі даних є рядок із id = 1. У такому випадку …

16
Вставити, після повторного оновлення у PostgreSQL?
Кілька місяців тому я дізнався з відповіді на переповнення стека, як виконати кілька оновлень одночасно в MySQL, використовуючи наступний синтаксис: INSERT INTO table (id, field, field2) VALUES (1, A, X), (2, B, Y), (3, C, Z) ON DUPLICATE KEY UPDATE field=VALUES(Col1), field2=VALUES(Col2); Зараз я перейшов на PostgreSQL і, мабуть, це …

21
Рішення для ВСТАВЛЕННЯ АБО ОНОВЛЕННЯ на SQL Server
Припустимо структуру таблиці MyTable(KEY, datafield1, datafield2...). Часто я хочу або оновити існуючий запис, або вставити новий запис, якщо його не існує. По суті: IF (key exists) run update command ELSE run insert command Який найкращий спосіб написати це?

18
SQLite - UPSERT * не * ВСТАВКА або ЗАМІНА
http://en.wikipedia.org/wiki/Upsert Вставте оновлення, що зберігається, на SQL Server Чи є якийсь розумний спосіб зробити це в SQLite, про який я не думав? В основному я хочу оновити три з чотирьох стовпців, якщо запис існує, якщо його немає, я хочу ВСТАВИТИ запис із значенням за замовчуванням (NUL) для четвертого стовпця. Ідентифікатор …
535 sql  sqlite  upsert 

17
Постгреси: ВСТАВИТИ, якщо вона ще не існує
Я використовую Python для запису до бази даних postgres: sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) Але оскільки деякі мої ряди однакові, я отримую таку помилку: psycopg2.IntegrityError: duplicate key value violates unique constraint …

12
Oracle: як UPSERT (оновити чи вставити в таблицю?)
Операція UPSERT або оновлює, або вставляє рядок у таблицю, залежно від того, якщо в таблиці вже є рядок, який відповідає даним: if table t has a row exists that has key X: update t set mystuff... where mykey=X else insert into t mystuff... Оскільки Oracle не має конкретної заяви UPSERT, …
293 sql  oracle  merge  upsert 

6
Як UPSERT (MERGE, INSERT… ON DUPLICATE UPDATE) в PostgreSQL?
Тут дуже часто задається питанням, як зробити поновлення, яке називає MySQL INSERT ... ON DUPLICATE UPDATEі стандарт підтримує в рамках MERGEоперації. Зважаючи на те, що PostgreSQL не підтримує його безпосередньо (до сторінки 9.5), як це зробити? Розглянемо наступне: CREATE TABLE testtable ( id integer PRIMARY KEY, somedata text NOT NULL …


6
Як використовувати ПОВЕРНЕННЯ з ON CONFLICT у PostgreSQL?
У PostgreSQL 9.5 є наступний UPSERT: INSERT INTO chats ("user", "contact", "name") VALUES ($1, $2, $3), ($2, $1, NULL) ON CONFLICT("user", "contact") DO NOTHING RETURNING id; Якщо немає конфліктів, він повертає щось подібне: ---------- | id | ---------- 1 | 50 | ---------- 2 | 51 | ---------- Але якщо …

1
PostgreSQL INSERT НА ОНОВЛЕННЯ КОНФЛІКТУ (оновлення) використовують усі виключені значення
Коли ви вставляєте рядок (PostgreSQL> = 9.5) і хочете, щоб можливий INSERT був таким самим, як можливий ОНОВЛЕННЯ, ви можете записати його так: INSERT INTO tablename (id, username, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, username=EXCLUDED.username, password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email Чи є коротший …

9
Вставте оновлення, що зберігається, на SQL Server
Я написав збережений додаток, який буде робити оновлення, якщо запис існує, інакше він зробить вставку. Це виглядає приблизно так: update myTable set Col1=@col1, Col2=@col2 where ID=@ID if @@rowcount = 0 insert into myTable (Col1, Col2) values (@col1, @col2) Моя логіка написання цього способу полягає в тому, що оновлення буде виконувати …

7
SQLite UPSERT / ОНОВЛЕННЯ АБО ВСТАВИТИ
Мені потрібно виконати UPSERT / INSERT АБО ОНОВЛЕННЯ проти бази даних SQLite. Існує команда ВСТАВИТЬ АБО ЗАМОВИТИ, яка у багатьох випадках може бути корисною. Але якщо ви хочете зберегти свій ідентифікатор з автоматичним збільшенням через сторонні ключі, він не працює, оскільки він видаляє рядок, створює новий і, отже, цей новий …
102 database  sqlite  upsert 

5
ВСТАВЛЕННЯ SQLite - ПОВТОРЕННЯ КЛЮЧОВОГО ОНОВЛЕННЯ (UPSERT)
MySQL має щось подібне: INSERT INTO visits (ip, hits) VALUES ('127.0.0.1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1; Наскільки я знаю, ця функція не існує в SQLite, я хочу знати, чи є якийсь спосіб отримати той самий ефект без необхідності виконувати два запити. Крім того, якщо це …
98 sql  mysql  database  sqlite  upsert 

9
Використовуйте декілька конфліктних цілей у реченні ON CONFLICT
У мене є два стовпці в таблиці col1, col2обидва вони унікально проіндексовані (col1 унікальний і так само col2). Мені потрібно вставити в цю таблицю, використовувати ON CONFLICTсинтаксис та оновити інші стовпці, але я не можу використовувати обидва стовпці у conflict_targetреченні. Це працює: INSERT INTO table ... ON CONFLICT ( col1 …

10
Як ОНОВИТИ рядок у таблиці або ВСТАВИТИ його, якщо він не існує?
У мене є наступна таблиця лічильників: CREATE TABLE cache ( key text PRIMARY KEY, generation int ); Я хотів би збільшити один із лічильників або встановити його на нуль, якщо відповідний рядок ще не існує. Чи є спосіб зробити це без проблем одночасності в стандартному SQL? Операція іноді є частиною …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.