私たちの会社のMySQLサーバーに新しいストアドプロシージャを追加する必要があります。ちょっと違うので、私は既に存在するものを使用し、追加のフィールドを追加し、プロシージャの名前を変更しました。MySQLのストアドプロシージャの奇妙な問題
この行の0にrefferingError Code: 1064. 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 '' at line 3
を::SET @update_id:奇妙なことは、今、私は文を実行したい場合、それは返すことです= 0;それを変えるのは、SHOW CREATE PROCEDUREを使ってストアドプロシージャを照会したことです。これはデータベースに保存され、正常に動作しています。私は新しいストアドプロシージャとして使用することはできません(新しいテストデータベースに適用しようとしても、既存のデータベースに新しい名前を付けて使用しても問題ありません)。 私はインターネットで解決策を探しました。残念ながら無駄に。私は新しいテーブルといくつかのデモ値を使って新しいデータベースをセットアップして、元の変更されていないストアドプロシージャを実行しようとしました。まったく同じエラーを返します。私は私が間違って何のアイデアから完全だとあなたたちは私を助けることができると思います
CREATE DEFINER=`root`@`localhost` PROCEDURE `customer_getcard`(IN Iinstance INT, IN Itimebuy DOUBLE, IN Iprice DECIMAL(10,2), IN Itariff INT, IN Icomment VARCHAR(128))
BEGIN
SET @update_id := 0;
UPDATE customer_shop SET state = 1, id = (SELECT @update_id := id), instance=Iinstance, timebuy=Itimebuy, price=Iprice, comment=Icomment WHERE tariff=Itariff AND state = 0 LIMIT 1;
SELECT * FROM customer_shop WHERE id = @update_id;
END
:ここ
は私が話している現在使用して作業するストアドプロシージャです。 :/
よろしく、マーク
投稿全体のエラー! – Namphibian
ここに行きます: エラーコード:1064. SQL構文にエラーがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックして、正しい構文を "3行目"の近くで使用してください。 –