Delete Problem
Hallo zusammen.
Bist jetzt habe ich alle SQL Abfragen/Statements immer mittels try and error hinbekommen. Mit einer delete Anweisung habe ich aber Probleme. Ich habe es auf verschiedene Weisen probiert und trotzdem kommt jedesmal ein Fehler. Wenn ich aus dem delete ein select * mache, läuft die Abfrage ohne Fehler.
hier die verschiedenen Varianten:
1. mein Favorit, da ohne Schleife aufgebaut, Werte für WHERE aus Array
DELETE FROM `test`.`prod` p
where (p.`PROD_SA`*1000000 + p.`PROD_PA`) in (2013006313,2013006314,2013006315) )
2. 3 einzelne Delets
DELETE FROM `test`.`prod` WHERE `prod`.`PROD_ID` = 8471 ;
DELETE FROM `test`.`prod` WHERE `prod`.`PROD_ID` = 8470 ;
DELETE FROM `test`.`prod` WHERE `prod`.`PROD_ID` = 8469 ;
3. mit where über 2 Spalten
DELETE FROM `test`.`prod`
WHERE (`prod`.`PROD_SA` = 2013 AND `prod`.`PROD_PA` = 6315) or
(`prod`.`PROD_SA` = 2013 AND `prod`.`PROD_PA` = 6314) or
(`prod`.`PROD_SA` = 2013 AND `prod`.`PROD_PA` = 6313)
4. mit subselect
DELETE FROM `test`.`prod` p
WHERE p.`prod_id` in
(
select pp.`PROD_ID` from `test`.`prod` pp
where (pp.`PROD_SA`*1000000 + pp.`PROD_PA`) in (2013006313,2013006314,2013006315)
)
bei allen Varianten kommt folgende Fehlermeldung, aus der der Fehler nicht zu erkennen ist:
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 ...
Das muß ein grundsätzlicher Syntaxfehler sein. Ich bin auch nach dem Studium des MySQL Handbuchs nicht schlauer. Was hab ich übersehen?
Ein Rechteproblem kann ich ausschließen, Recht für Delete gesetzt und an anderer Stelle klappt es auch mit dem Delete.
Grüße,
Marc
|