Ich benutze die H2-Datei-Datenbank und ich bin in das folgende Problem läuft. Angenommen, ich habe eine Tabelle namens PROPERTIES mit zwei VARCHAR (255) Spalten: NAME und VALUE, wobei NAME der Primärschlüssel ist. Jetzt möchte ich die Tabelle nur mit einer neuen Zeile aktualisieren, wenn sie nicht existiert. Wenn es existiert, möchte ich den Wert für diesen Namen nicht ändern. Dies wäre beispielsweise für MS SQL Server einfach, aber H2 SQL hat kein IF, WHERE NOT EXISTS. Es hat einen Befehl namens MERGE, der aktualisiert wird, wenn er existiert. Gibt es eine Möglichkeit, dies mit H2 SQL zu tun?
Ich glaube nicht, dass diese Frage ein Duplikat ist, weil ich es nicht speziell für H2 gefragt habe.H2-Zeile nur einfügen, wenn nicht existiert
Antwort
Ich bin nicht vertraut mit H2, aber wenn "wo nicht existiert" nicht funktioniert, wie wäre es zu prüfen, ob der neue Wert bereits existiert und nur einfügen, wenn es nicht tut?
Dies ist ein SQL Server-Beispiel, daher müssen Sie möglicherweise die Syntax ändern.
Insert into Properties
(Name, Value)
source.Newname, source.NewValue
from Source
where NewName
not in (
select Name
from Properties
)
;
Danke, aber Ihr Code scheint aus einer anderen Tabelle einzufügen. Ich muss in der Lage sein, konstante Werte direkt in die Tabelle einzufügen. Wie würde ich Source füllen? –
Wie gehst du in die Werte? Verwenden wir Variablen? Mit Variablen können Sie die Klausel "from Source" entfernen und die Spaltenwerte NewName und NewValue durch die Variablen ersetzen. – Adam
- 1. Wie nur einfügen, wenn nicht existiert
- 2. Postgresql einfügen, wenn nicht existiert
- 3. einfügen, wenn nicht existiert oracle
- 4. Ansible: Zeile einfügen, wenn nicht existiert
- 5. SQL einfügen, wenn Zeile nicht existiert
- 6. SQL Einfügen Datensatz, wenn nicht existiert
- 7. In h2 Tabelle einfügen, wenn nicht existiert
- 8. Werte einfügen, wenn es nicht existiert mysql
- 9. Wie Einfügen, wenn nicht mit Parametern existiert?
- 10. SQL anstelle von Trigger einfügen - Daten einfügen, wenn nicht existiert
- 11. DBMS_SCHEDULER.DROP_JOB nur wenn existiert
- 12. Sed-Befehl: Wie ersetzt man, wenn existiert sonst nur einfügen?
- 13. XSLT Element einfügen nur, wenn es nicht
- 14. Hibernate: Datenbank nur machen, wenn nicht existiert
- 15. Nur einfügen, wenn Timestamp nicht belegt ist
- 16. einfügen, wenn ein Wertfeld nicht ohne existiert ignorieren, einzigartig
- 17. sql wenn existiert Update sonst einfügen funktioniert nicht
- 18. Einfügen, wenn nicht existiert sonst aktualisieren Sie den Datensatz
- 19. SQLite Abfrage zum Einfügen eines Datensatzes Wenn nicht existiert
- 20. Probleme EINFÜGEN Datensatz, wenn es nicht bereits existiert
- 21. MongoDB- Einfügen, wenn es nicht existiert, sonst überspringen
- 22. Mysql einfügen, wenn nicht existiert von separaten Tabelle
- 23. Kann ich nur einfügen, wenn ein Datensatz in einer einzelnen Anweisung nicht existiert?
- 24. Einfügen eines Objekts in die Datenbank mit Hibernate, nur wenn es nicht existiert
- 25. PostgreSQL: CAST Spalte nur wenn existiert
- 26. Dokument einfügen, wenn nicht gefunden
- 27. Oracle einfügen, wenn nicht-Anweisung
- 28. EINFÜGEN, WENN NICHT BESTEHT UPDATE?
- 29. mysql einfügen nur wenn nicht vorhanden funktioniert nicht
- 30. Installiere nur, wenn externe Datei existiert
Es scheint, Sie verwenden können, ', wo nicht mit H2 exists' http://stackoverflow.com/questions/19768051/h2-sql-database-insert-if-the-record-does-not-exist –
Eigentlich funktioniert es nicht für mich. Es scheint nicht, dass Sie WHERE NOT EXISTS in H2 verwenden können. Ich verwende SQuirrel 3.6, um die Abfrage auszuführen (H2-Treiber ist h2-1.4.187) –