2011-04-21 5 views
0

J'ai une erreur dans ma procédure stockée. Je Majeures DBErreur dans ma procédure stockée

SET @counter = 1; 
SET @last = 0; 
UPDATE Customer SET ordre = (IF(@last = customer_id,@counter + 1,@counter = 1)), 
       @last = customer_id 

Mon erreur

ligne Script: 3 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version serveur MySQL pour la bonne syntaxe à utiliser près '@Last = customer_id ORDER BY customer_id' à la ligne 2

+0

est-ce que 'table' est un nom de table? – Nanne

+0

oui, désolé je modifie mon poste;) – Mercer

+0

quelle version mysql votre utilisation? – Gowri

Répondre

0

Vous ne pouvez pas définir des variables dans la clause SET de l'instruction UPDATE. '@last = customer_id' provoque l'erreur.

de la référence -

MISE À JOUR Syntaxe - '... SET nom_colonne1 = expr1 [, nom_colonne2 = expr2 ...]'

La clause SET indique les colonnes à modifier et les valeurs qu'ils devraient être donné.

+0

est donc impossible de faire pourquoi je veux? – Mercer

+0

De cette façon - non. Qu'est-ce que tu vas faire? – Devart