Ich möchte einer Datenbanktabelle eine Zeile hinzufügen, aber wenn eine Zeile mit demselben eindeutigen Schlüssel vorhanden ist, möchte ich die Zeile aktualisieren. Zum Beispiel: insert into table (id, name, age) values(1, "A", 19) Angenommen, der eindeutige Schlüssel lautet id, und in meiner Datenbank gibt es eine Zeile mit id = …
Vor einigen Monaten habe ich aus einer Antwort auf Stack Overflow gelernt, wie mehrere Updates gleichzeitig in MySQL mit der folgenden Syntax ausgeführt werden: 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); Ich habe jetzt auf …
Nehmen Sie eine Tabellenstruktur von an MyTable(KEY, datafield1, datafield2...). Oft möchte ich entweder einen vorhandenen Datensatz aktualisieren oder einen neuen Datensatz einfügen, wenn dieser nicht vorhanden ist. Im Wesentlichen: IF (key exists) run update command ELSE run insert command Was ist die beste Art, dies zu schreiben?
http://en.wikipedia.org/wiki/Upsert Fügen Sie den auf SQL Server gespeicherten Update-Prozess ein Gibt es eine clevere Möglichkeit, dies in SQLite zu tun, an die ich nicht gedacht habe? Grundsätzlich möchte ich drei von vier Spalten aktualisieren, wenn der Datensatz vorhanden ist. Wenn er nicht vorhanden ist, möchte ich den Datensatz mit dem …
Ich verwende Python, um in eine Postgres-Datenbank zu schreiben: sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) Da jedoch einige meiner Zeilen identisch sind, wird der folgende Fehler angezeigt: psycopg2.IntegrityError: duplicate key value violates …
Die UPSERT-Operation aktualisiert oder fügt eine Zeile in eine Tabelle ein, je nachdem, ob die Tabelle bereits eine Zeile enthält, die mit den Daten übereinstimmt: if table t has a row exists that has key X: update t set mystuff... where mykey=X else insert into t mystuff... Wie geht das …
Eine sehr häufig gestellte Frage ist hier, wie ein Upsert durchgeführt wird. Dies wird von MySQL aufgerufen INSERT ... ON DUPLICATE UPDATEund der Standard unterstützt dies als Teil der MERGEOperation. Wie machen Sie das, da PostgreSQL es nicht direkt unterstützt (vor S. 9.5)? Folgendes berücksichtigen: CREATE TABLE testtable ( id …
Gibt es eine einfache Möglichkeit, INSERTeine Zeile zu verwenden, wenn sie nicht vorhanden ist, oder UPDATEmithilfe einer MySQL-Abfrage , wenn sie vorhanden ist?
Ich habe das folgende UPSERT in PostgreSQL 9.5: INSERT INTO chats ("user", "contact", "name") VALUES ($1, $2, $3), ($2, $1, NULL) ON CONFLICT("user", "contact") DO NOTHING RETURNING id; Wenn es keine Konflikte gibt, wird Folgendes zurückgegeben: ---------- | id | ---------- 1 | 50 | ---------- 2 | 51 | …
Wenn Sie eine Zeile auf den Kopf stellen (PostgreSQL> = 9.5) und möchten, dass das mögliche INSERT genau dem möglichen UPDATE entspricht, können Sie es folgendermaßen schreiben: 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, …
Ich habe einen gespeicherten Prozess geschrieben, der ein Update ausführt, wenn ein Datensatz vorhanden ist, andernfalls wird ein Insert ausgeführt. Es sieht ungefähr so aus: update myTable set Col1=@col1, Col2=@col2 where ID=@ID if @@rowcount = 0 insert into myTable (Col1, Col2) values (@col1, @col2) Meine Logik hinter dem Schreiben auf …
Ich muss UPSERT / INSERT ODER UPDATE für eine SQLite-Datenbank ausführen. Es gibt den Befehl INSERT OR REPLACE, der in vielen Fällen nützlich sein kann. Wenn Sie jedoch Ihre IDs mit automatischer Inkrementierung aufgrund von Fremdschlüsseln beibehalten möchten, funktioniert dies nicht, da die Zeile gelöscht, eine neue erstellt und folglich …
MySQL hat ungefähr so etwas: INSERT INTO visits (ip, hits) VALUES ('127.0.0.1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1; Soweit ich weiß, ist diese Funktion in SQLite nicht vorhanden. Ich möchte wissen, ob es eine Möglichkeit gibt, denselben Effekt zu erzielen, ohne zwei Abfragen ausführen zu müssen. …
Ich habe zwei Spalten in der Tabelle col1, col2beide sind eindeutig indiziert (col1 ist eindeutig und col2 auch). Ich muss beim Einfügen in diese Tabelle die ON CONFLICTSyntax verwenden und andere Spalten aktualisieren, aber ich kann nicht beide Spalten in conflict_targetKlausel verwenden. Es klappt: INSERT INTO table ... ON CONFLICT …
Ich habe die folgende Tabelle von Zählern: CREATE TABLE cache ( key text PRIMARY KEY, generation int ); Ich möchte einen der Zähler erhöhen oder auf Null setzen, wenn die entsprechende Zeile noch nicht vorhanden ist. Gibt es eine Möglichkeit, dies ohne Parallelitätsprobleme in Standard-SQL zu tun? Die Operation ist …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.