Gerald: mysql ON DUPLICATE KEY

Hi,

hab ich da was falsch verstanden?

Ich habe in einer tabelle einen kombinierten unique-index über die Spalten art und PID gesetzt.

Die Tabelle ist zum Zeitpunkt folgender Abfrage leer:

  
  
INSERT INTO table  
	(  
          ID,  
          art,  
          PID,  
          sort  
         )  
		  VALUES  
		  (  
		  NULL,  
		  'R',  
		  54,  
		  0  
		  )  
		  ON DUPLICATE KEY  
		  UPDATE table  
		  SET  
		  sort = 0  
		  WHERE art = 'R' AND PID = 54;  

MySQL meldet:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET sort = 0 WHERE ...

Was ist an meiner Query falsch?

Gruß

  1. Tach!

    hab ich da was falsch verstanden?

    Ja. Und vermutlich auch nicht die Beispiele im Handbuch.

    INSERT INTO table
    [...]
      ON DUPLICATE KEY
      UPDATE table
      SET
      sort = 0
      WHERE art = 'R' AND PID = 54;
    MySQL meldet:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET sort = 0 WHERE ...

    Was ist an meiner Query falsch?

    An der Stelle wird kein vollständiges UPDATE-Statement benötigt, sondern nur: Spalte=Ausdruck, gegebenenfalls mehrere durch Komma getrennt.

    dedlfix.

    1. An der Stelle wird kein vollständiges UPDATE-Statement benötigt, sondern nur: Spalte=Ausdruck, gegebenenfalls mehrere durch Komma getrennt.

      Hi dedlfix,

      ja, danke :-)

      Kleiner Denkfehler. Es ist ja gerade die Voraussetzung, dass Tabelle und Datensatz bekannt sind, damit das Update-Statement greifen kann. Logisch.

      Gruß