UPDATE oder INSERT
am 17.01.2006 00:11:17 von kscheller
Hallo,
gibt es eine einfache Möglichkeit, einen Datensatz zu aktualisieren und
bei nicht-Vorhandensein neu anzulegen?
Mir scheint, ich muss das in zwei SQL-Statements unterbringen, und das
ist reichlich ineffektiv (also erst ein SELECT und dann entscheiden, ob
INSERT oder UPDATE). Gibts da wirklich keine andere, elegantere Methode?
Servus,
Konni
--
http://www.scharfe-wochen.de/ - Meerrettichspezialitäten und Rezepte
Im Oktober wird verschärft gekocht
Re: UPDATE oder INSERT
am 17.01.2006 00:34:58 von Timo Kissing
Es war einmal ein Posting von Konni Scheller mit dem Text:
> Hallo,
Hallo Konni.
> gibt es eine einfache Möglichkeit, einen Datensatz zu aktualisieren und
> bei nicht-Vorhandensein neu anzulegen?
>
> Mir scheint, ich muss das in zwei SQL-Statements unterbringen, und das
> ist reichlich ineffektiv (also erst ein SELECT und dann entscheiden, ob
> INSERT oder UPDATE). Gibts da wirklich keine andere, elegantere Methode?
Ich glaube du suchst "INSERT ... ON DUPLICATE KEY UPDATE":
| If you specify ON DUPLICATE KEY UPDATE (added in MySQL 4.1.0), and a row
| is inserted that would cause a duplicate value in a UNIQUE index or
| PRIMARY KEY, an UPDATE of the old row is performed.
HTH,
lino.
--
°° Oberster Verteidiger des Ordens der Dunklen Seite von de.ALL [tm] °°
I haven't got all day, you know.
[ The way of Mrs Marietta Cosmopolite, 3 Quirm Street, Ankh-Morpork, ]
[ Rooms for Rent, Very Reasonable. ]
Re: UPDATE oder INSERT
am 17.01.2006 01:00:40 von kscheller
Timo Kissing <2006-01@ranta.info> wrote:
> Ich glaube du suchst "INSERT ... ON DUPLICATE KEY UPDATE":
Genau - danke!
> HTH, lino.
Schön, dich mal zu lesen.
Servus,
Konni
--
http://www.scharfe-wochen.de/ - Meerrettichspezialitäten und Rezepte
Im Oktober wird verschärft gekocht
Re: UPDATE oder INSERT
am 17.01.2006 01:05:51 von Jan Rademacher
eine andere einfach Möglichkeit:
mysql_query("UPDATE ...");
$anzahl=mysql_affected_rows();
if($anzahl=0) $ins=mysql_query("INSERT ...");
(ausm kopf - also keine 100% für den Syntax ;) )
--
Jan Rademacher
http://www.lockerbleiben.net
Re: UPDATE oder INSERT
am 17.01.2006 08:22:41 von kscheller
Timo Kissing <2006-01@ranta.info> wrote:
>
Wie ich gerade sehe, geht das erst ab Version 4.1.
Servus,
Konni
--
http://www.scharfe-wochen.de/ - Meerrettichspezialitäten und Rezepte
Im Oktober wird verschärft gekocht
Re: UPDATE oder INSERT
am 17.01.2006 09:03:32 von Gregor Hermens
Hallo Konni,
Konni Scheller wrote:
> gibt es eine einfache Möglichkeit, einen Datensatz zu aktualisieren und
> bei nicht-Vorhandensein neu anzulegen?
REPLACE http://dev.mysql.com/doc/refman/4.1/en/replace.html
Alternativ INSERT IGNORE, dann bleibt der bereits vorhandene Datensatz
erhalten: http://dev.mysql.com/doc/refman/4.1/en/insert.html
hth
Gregor
Re: UPDATE oder INSERT
am 17.01.2006 09:05:01 von Christian Kirsch
Konni Scheller wrote:
> Timo Kissing <2006-01@ranta.info> wrote:
>
>
>>
>
>
Nach Deinem Posting hätte ich eher auf REPLACE INTO getippt. Und das
sollte AFAIK auch schon mit 4.0 gehen.
HTH
Re: UPDATE oder INSERT
am 17.01.2006 11:42:48 von kscheller
Hallo Christian,
Christian Kirsch wrote:
> Nach Deinem Posting hätte ich eher auf REPLACE INTO getippt. Und das
> sollte AFAIK auch schon mit 4.0 gehen.
Exakt, das ist es. Allerdings hat mein Provider noch ein 3.x laufen und
ich möchte ihn nicht zusätzlich in Stress versetzen.
Ich muss wohl nach CSS, HTML und PHP Spezifikationen auch noch das
MySQL-"Telefonbuch" durchlesen ;)
Vielen Dank.
Servus,
Konni
--
http://www.scharfe-wochen.de/ - Meerrettichspezialitäten und Rezepte
Im Oktober wird verschärft gekocht
Re: UPDATE oder INSERT
am 17.01.2006 11:51:28 von Helmut Chang
Konni Scheller schrieb:
>>Nach Deinem Posting hätte ich eher auf REPLACE INTO getippt. Und das
>>sollte AFAIK auch schon mit 4.0 gehen.
>
>
> Exakt, das ist es. Allerdings hat mein Provider noch ein 3.x laufen und
> ich möchte ihn nicht zusätzlich in Stress versetzen.
REPLACE INTO ging bereits mit mindestens 3.23.
gruss, heli
Re: UPDATE oder INSERT
am 17.01.2006 11:55:32 von Christian Kirsch
Konni Scheller schrieb:
> Ich muss wohl nach CSS, HTML und PHP Spezifikationen auch noch das
> MySQL-"Telefonbuch" durchlesen ;)
>
Ja. Oder den Kofler dazu. Oder einen Dienstleister beauftragen. Zu der
'Alternative' Framemaker möchte ich Dir jedenfalls nicht raten
(abgesehen davon, dass Du dafür kaum einen Provider finden wirst).