fa_herrmann
Grünschnabel
Moin miteinander,
folgendes Problem habe ich mit einer SP unter mySQL 5.*:
Eine Abfrage a la
INSERT INTO Table (Spalte1, Spatlte2) (SELECT Spalte1, Spalte2 FROM Table WHERE ID=1)
funktioniert logischerweise problemlos und legt damit eine Kopie eines Satzes an... Da ich den (Auto)-ID Wert des neuen Satzes brauche, und ich den Tabellentyp nicht umsellen kann, um transaktional zu arbeiten, es in mySQL aber auch nichts wie die interne Inserted-Table wie auf dem SQL-Server gibt, wollte ich den Kram wenigstens in eine Prozedur kapseln...
Also
BEGIN
INSERT INTO Table (Spalte1, Spatlte2) (SELECT Spalte1, Spalte2 FROM Table WHERE ID=1)
SELECT MAX(ID)FROM Table
END
Das mag das blöde Ding aber nicht...
Es kann doch aber nicht mal unter mySQL so schwer sein, den neuen Autowert eines neuen Sates halbwegs zweifelsfrei zu bestimmen... Ohne das auf den Client auslagern zu müssen...
cul,
Falk
folgendes Problem habe ich mit einer SP unter mySQL 5.*:
Eine Abfrage a la
INSERT INTO Table (Spalte1, Spatlte2) (SELECT Spalte1, Spalte2 FROM Table WHERE ID=1)
funktioniert logischerweise problemlos und legt damit eine Kopie eines Satzes an... Da ich den (Auto)-ID Wert des neuen Satzes brauche, und ich den Tabellentyp nicht umsellen kann, um transaktional zu arbeiten, es in mySQL aber auch nichts wie die interne Inserted-Table wie auf dem SQL-Server gibt, wollte ich den Kram wenigstens in eine Prozedur kapseln...
Also
BEGIN
INSERT INTO Table (Spalte1, Spatlte2) (SELECT Spalte1, Spalte2 FROM Table WHERE ID=1)
SELECT MAX(ID)FROM Table
END
Das mag das blöde Ding aber nicht...
Es kann doch aber nicht mal unter mySQL so schwer sein, den neuen Autowert eines neuen Sates halbwegs zweifelsfrei zu bestimmen... Ohne das auf den Client auslagern zu müssen...
cul,
Falk