Vinzenz Mai: MySQL Cursors deklarieren

Beitrag lesen

Hallo

MySQL-Manual:

http://dev.mysql.com/doc/refman/5.1/de/cursors.html

warum MySQL 5.1? Ok, MySQL 5.1 geht allmählich auf den Status Release Candidate zu - verwenden würde ich persönlich MySQL 5.1 im Produktionseinsatz
noch auf keinen Fall. Siehe MySQL 5.0, wo in Version 5.0.12 kurz vor dem RC
die JOIN-Syntax inkompatibel geändert wurde.

Der Satz: "Cursors müssen vor Handlern und Variablen und Bedingungen vor Cursors und Handlern deklariert werden."

eine falsche Übersetzung wie Dir dem Original leicht hättest entnehmen können:

<zitat>
    Cursors must be declared before declaring handlers. Variables and
    conditions must be declared before declaring either cursors or handlers.
</zitat>

Text gleich bei der Doku von MySQL 5.0 und MySQL 5.1.

CREATE PROCEDURE curdemo()
BEGIN
  DECLARE done INT DEFAULT 0;
  DECLARE a CHAR(16);
  DECLARE b,c INT;
  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

OPEN cur1;
  OPEN cur2;

[...]

Verstehe ich da nun 'was falsch,

Nein.

oder widersprechen die MySQL-er sich da selbst?

Nein, nur ein Übersetzungsfehler.

Wie ist es denn nun richtig und vor allem, warum?

Lies das Original:
Cursors (5.0)
Cursors (5.1)

Freundliche Grüße

Vinzenz