私は自分のアプリケーション用の新しいデスクトップログイントークンを作成するためのストアドルーチンを持っており、ユーザーが再ログインする必要があるかどうかを確認します。MySQL - IF EXISTSを使用すると私のステートメントが壊れているようです
重要なことは、使用しているSQLが私を好きにしていないことです。
:私はデータベースのためのSSMSに焦点を当てていた.NET開発者ですので、私は唯一のこれまでT-SQLを使用しますが、今回は私が愚かなし経験XDここ
でMySQLを使用することにしましたが、コードです
CREATE PROCEDURE `insertNewToken`(IN `Username` VARCHAR(150), IN `Token` VARCHAR(500))
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
IF EXISTS(SELECT *
FROM desktopTokens
WHERE desktopTokens.AssignedUsername = Username) THEN
BEGIN
UPDATE desktopTokens
SET desktopTokens.TokenValue = Token
WHERE desktopTokens.AssignedUsername = Username
END
ELSE
BEGIN
INSERT INTO desktopTokens
VALUES
(Username, Token)
END
私はLINE 2とLINE 15でエラーが発生し続けますが、理由はわかりません!
注:トークンとユーザー名が、SP変数です
あなたはこのコードを実行する方法は差が 'PROCEDURE'ブロックを作成内側にこのコードを--Isのでしょうか?周囲の文脈をすべて投稿してください。 MySQLでは 'CREATE PROCEDURE/FUNCTION'以外の通常のSQL文で' IF/ELSE、BEGIN/END'を使用することはできません。 –
確かに、今編集します。 – Astrify
関連する場合、重複していない場合:[MySQLの "IF EXISTS"の使用法](http://stackoverflow.com/questions/5528854/usage-of-mysqls-if-exists) – Wondercricket