MySQL - Direkt UPDATE oder erst INSERT ?

son gohan

Erfahrenes Mitglied
Hallo,

kann man neue Datensaetze direkt mit UPDATE in die MySQL Datenbank schreiben oder muss man immer zuerst INSERT benutzen?

Wenn es moeglich ist, will ich nicht ein Umweg programmieren, so das man immer erst nachschauen muss ob der Datensatz schon drine ist bevor man UPDATE benutzt.
 
Danke, ich denke damit klappt es jetzt. Ich hoffe anderen suchenden hilft die Loseung auch weiter.
 
Hi

Insert … on duplicate key update

Hallo,
ich probiere seit einigen Stunden mit diesem Statement:

PHP:
$sql = "INSERT INTO `neue`.`permane` (`ticket`, `zeit`, `typ`, `vl`, `oen`, `cle`, `tp`, `set`, `gen`, `stage`, `sol`, `aid`) VALUES   

('10350694', '1368598451', '1', '0.05000000', '1.29078000', '1.29205000', '0.00000000', '0.00000000', '4.91', 'st', 'EDrm', '1')    , ('10366217', '1368615097', 

'2', '0.05000000', '1.28625000', '1.28590000', '0.00000000', '0.00000000', '1.36', 'st', 'EDrm', '1')  
ON DUPLICATE KEY UPDATE `cle` = '2.8590000' , `cle`='9.205000'  ";

Das Problem das ich habe ist das die beiden Eintraege bei "cle" den wert "9.20500" bekommen, der erste Eintrag sollte aber "2.8590000" bekommen, kann jemand ein Fehler in mein sql stqtement finden woran das liegt?
 
item: PHP SQL-Statement in PHP lesbar darstellen

item: Was ist dein Unique-Key/PrimaryKey der Tabelle?

item: War hast d 2 Wertezuordnungen audf das Feld cle im Update-Teil? Jede Zeile hat nur ein cle und im Update kannst du nur eine Zeile auf einmal abdecken.

Ergo: Mach 2 INSERT … ON DUPLICATE KEY UPDATE draus.
 
item: PHP SQL-Statement in PHP lesbar darstellen

item: Was ist dein Unique-Key/PrimaryKey der Tabelle?

item: War hast d 2 Wertezuordnungen audf das Feld cle im Update-Teil? Jede Zeile hat nur ein cle und im Update kannst du nur eine Zeile auf einmal abdecken.

Ergo: Mach 2 INSERT … ON DUPLICATE KEY UPDATE draus.

Hallo, danke fuer die Hilfe.
Mein Unique-Key ist das Feld "ticket"
Im Feld "cle" will ich manchmal updates machen fuer mehrere Datensaetze gleichzeitig und ich sehe im moment das man nur einmal ON DUPLICATE KEY UPDATE benutzen kann.
Wenn ich 2 INSERT … ON DUPLICATE KEY UPDATE Abfragen daraus mache dann muss ich auch zwei mal eine Abfrage zur Datenbank senden, bei 2 Datensaetzen ist das nicht schlimm, aber manchmal werde ich ueber 100 Datensaetze gleichzeitig auf die weise updaten wollen und dann 100 solcher INSERT … ON DUPLICATE KEY UPDATE Abfragen ist aufwendig.
Deswegen frage ich mich ob es den da nicht eine bessere Loesung gibt.
Also wie es aussieht kann man INSERT … ON DUPLICATE KEY UPDATE nur fuer ein Datensatz benutzen, dann muss ich ein anderen Befehl vielleicht benutzen.
Wenn ich REPLACE benutze habe ich den dann irgendwelche Nachteile?
 
Zurück