プロシージャを持つprocedure.sqlという名前のSQLファイルがあります。 マリアDBバージョン:Serverバージョン:10.0.29-MariaDB-0ubuntu0.16.04.1のUbuntu 16.04エラー1064:SQL構文にエラーがあります。あなたのMariaDBサーバーのバージョンに対応するマニュアルをチェックして右の構文を使用してください。
しかし、次のように、私はエラーを取得しています:
>mysql -u root -p XXX < /home/azure/Downloads/procedure.sql
>Enter password:
>ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '();
>USE XXX;
>CREATE OR REPLACE PROCEDURE XXX.updateDoc_StorageID()
>BEGIN' at line 1
は、誰も私を助けてくださいことはできますか?
procedure.sqlコード:私が得たリファレンスからである
DELIMITER //
DROP PROCEDURE IF EXISTS XXX.updateDoc_StorageID;
USE XXX;
CREATE OR REPLACE PROCEDURE XXX.updateDoc_StorageID()
BEGIN
DECLARE myTransacID INT DEFAULT 0;
DECLARE myTransProductId INT DEFAULT 0;
DECLARE myDocStoreID VARCHAR(500) DEFAULT '0';
DECLARE my_count INT DEFAULT 0;
DECLARE trans_csr CURSOR FOR SELECT 1,2 FROM MainTable ORDER BY TransactionID;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET my_count=1;
SET my_count=0;
OPEN trans_csr;
trans_loop:LOOP
FETCH trans_csr INTO myTransacID,myTransProductId;
IF my_count=1 THEN
LEAVE trans_loop;
END IF;
If(myTransProductId=8)
then
if exists(....)
then
.......
end if;
elseif (myTransProductId=11)
then
if exists(........)
then
.......
END IF;
END IF;
END LOOP trans_loop;
CLOSE trans_csr;
SET my_count=0;
END;
//
DELIMITER ;
: https://mariadb.com/kb/en/mariadb/create-procedure/
何のコードでは、あなたのprocedure.sqlにありますか?ここにガラス球はありません:) – theGtknerd
一度にコード全体を提供することはできません。 – BhaskarAzure