Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL]Wert erhöhen und einfügen wenn nicht vorhanden (https://www.delphipraxis.net/86792-%5Bsql%5Dwert-erhoehen-und-einfuegen-wenn-nicht-vorhanden.html)

arbu man 19. Feb 2007 20:21

Datenbank: MySQL • Version: 4/5 • Zugriff über: php

[SQL]Wert erhöhen und einfügen wenn nicht vorhanden
 
Hallo,

ich möchte einer Tabelle einen Datensatz hinzufügen bzw. einen bestehenden bearbeiten. Im Prinzip kann man es so ausdrücken:
SQL-Code:
UPDATE `nx__projects__hits` SET `hits` = `hits` +1 WHERE `name` = "nxTerminal"
Nur soll wenn es keinen Datensatz mit dem Wert "nxTerminal" gibt ein neuer erstellt werden und hits soll auf 1 gesetzt werden.
Wie kann ich das mit einer SQL Abfrage erreichen ?

mfg, Björn

Jelly 19. Feb 2007 20:32

Re: [SQL]Wert erhöhen und einfügen wenn nicht vorhanden
 
Mit einer Anweisung wohl kaum. Zum Updaten brauchts, wie du selbst angegeben hat, ein Update Befehl. Und zum Einfügen brauchts in SQL ein Insert Befehl. Beides zusammen geht also nicht.

Du kannst aber entweder in Delphi vorher prüfen, ob der Datenstz vorhanden ist und dementsprechend den geeigneten SQL Befehl abschicken. Oder du erstellst eine Stored Procedure, welche das intern in der DB für dich regelt. Die Logik bleibt dabei die gleiche, wobei ich zweitere Lösung für die saubere halte.

omata 19. Feb 2007 21:32

Re: [SQL]Wert erhöhen und einfügen wenn nicht vorhanden
 
Hallo,

schau doch mal hier.

Edit: Ich sehe gerade, das geht wohl nicht bei nicht vorhandenen Zeilen, sorry.

Gruss
Thorsten

arbu man 19. Feb 2007 22:01

Re: [SQL]Wert erhöhen und einfügen wenn nicht vorhanden
 
Doch es geht das ist genau das was ich gesucht habe Danke :)
SQL-Code:
INSERT INTO nx__projects_hits(name) VALUES ('nxTerminal')
  ON DUPLICATE KEY UPDATE hits=hits+1;
mfg, Björn


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz