2016-04-23 1 views
0

プロシージャを作成しようとしましたが、1時間前に動作しましたが、今はエラーが発生しています。私はプロシージャをエクスポートしました(私のためにテキスト文phpmyadminの出力をコピーしました)、エクスポートしたコードを実行させてもらえませんでした。エクスポートされたコードの下に、エラーレポートphpmyadminが表示されます。phpMyAdminのストアドプロシージャからテキストをコピーした後にsql statmentを実行できません

また、すべてのsqlクエリは単独で動作しますが、エクスポートする前にプロシージャを呼び出していたときに実行されていましたが、クエリはすべての行に影響を与えませんでした。私が間違っているか何かの変数を標識しています(私は私は思いませんが、私はチェックをしました)

私が入力したもの:?

CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteCard`(IN `@aName` VARCHAR(255)) 
NO SQL 
BEGIN 
UPDATE Decks 
JOIN Amount ON amount.DeckName = decks.DeckName 
SET decks.DeckTotal = Decks.DeckTotal - Decks.DeckTotal 
WHERE Amount.AmountName = @aName; 

UPDATE Types t1 
JOIN Cards ON cards.TypeName = t1.TypeName 
JOIN Amount ON amount.CardName = Cards.CardName 
SET t1.TypeTotal = t1.TypeTotal - Amount.Amount 
WHERE Amount.CardName = @aName; 

DELETE 
FROM Amount 
WHERE CardName = @aName; 


DELETE 
FROM Cards 
WHERE CardName = aName; 
END 

エラーレポート:

CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteCard`(IN `aName` VARCHAR(255)) 
NO SQL 
BEGIN 
UPDATE Decks 
JOIN Amount ON amount.DeckName = decks.DeckName 
SET decks.DeckTotal = Decks.DeckTotal - Decks.DeckTotal 
WHERE Amount.AmountName = aName; 

MySQLは言いました:ドキュメント

1064 - SQL構文に誤りがあります。また、

DELETE 
FROM Cards 
WHERE CardName = aName; -- should be @aName 

:最後の削除クエリではライン7

+0

[phpmyadminを使用してストアドプロシージャを作成する方法と、phpを使用してストアドプロシージャを作成する方法](http://stackoverflow.com/questions/2846516/how-to-write-a-stored-procedure-using) –

+0

デリミタを変更して、最初の '; 'がプロシージャの終わりとして解釈されないようにするか、または専用のストアドルーチンインタフェースを使用する必要があります。 –

答えて

0

で「」の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認し、変数名の前に@を逃していますあなたのデータベースに遠隔からアクセスする意思がある場合は、

DEFINER=`root`@`localhost` 

を削除してください。

+0

もう一度Shaharyar、@記号を追加しましたが、コードの同じpiceで同じエラーが発生しています。 7行目、つまり「WHERE Amount.AmountName = @aName;」という行です – bloopiebloopie

+0

この完全なスクリプトをステートメントとして実行していますか?はいの場合は、phpmyadmin GUIを使用して作成してください。さらに、 'lowercase'と' uppercase'テーブル名を除いて、すべてのクエリはきれいに見えます。 – Shaharyar

+0

phpmyadminを使って文を作成した後、ツールのようにデータベースをアップロードしました。私は新しいデータベースにステートメントをコピーし、ここに私は...名前の変更は何も変わっていない。 – bloopiebloopie