私は間違いを理解できません。Mysqlエラー(#1064)SQL構文にエラーがあり、正しい構文が "at line 20"近くで使用されています
CREATE PROCEDURE ajoutEmprunt(nss FLOAT(15, 0), codeB INT(14), dateEm DATE)
BEGIN
DECLARE nbMaxBook INT;
DECLARE nbCurrentBook INT;
DECLARE late INT;
SELECT COUNT(*) INTO nbCurrentBook FROM emprunte WHERE emprunte.nssU = nss GROUP BY emprunte.nssU;
SELECT categorie.nbMaxOuv
INTO nbMaxBook
FROM categorie, appartient_a, utilisateur
WHERE categorie.idCat = appartient_a.idCat AND appartient_a.nssU=utilisateur.nssU;
IF EXISTS (SELECT * FROM emprunte WHERE nss = emprunte.nssU GROUP BY emprunte.nssU HAVING DATEDIFF(CURRENT_DATE, emprunte.dateLimite) < 0))
THEN SET late = 1;
ELSE IF nbCurrentBook = 0 THEN SET late = 0;
END IF;
IF nbCurrentBook < nbMaxBook AND late = 0
THEN INSERT INTO emprunte(nssU, codeBarre, dateEmprunt) VALUES(nss,codeB, dateEm);
END IF;
END|
は、実際に私はこの問題は、このコードのブロックによって提起されていることを知っている:
IF EXISTS (SELECT * FROM emprunte WHERE nss = emprunte.nssU GROUP BY emprunte.nssU HAVING DATEDIFF(CURRENT_DATE, emprunte.dateLimite) < 0)
THEN SET retard = 1;
しかし、私はそれを修正したり、それを交換する方法がわかりません。 あなたは何か考えているなら、それは歓迎されるでしょう!
これは通常、カッコ内の不一致に関連しているので、私はそこから始めます – Strawberry