0

電子メール フィールドに @ 記号が見つからない場合に挿入が行われないようにするトリガーを MYSQL 5.0.95 で作成しようとしています。トリガー以外にもこれを行う方法があることは知っていますが、トリガーがどのように機能するかを本当に知りたいです

CREATE TRIGGER triggerUsersEmail 
BEFORE INSERT ON Users 
FOR EACH ROW 
BEGIN 
IF (Users.email NOT LIKE '%@%') THEN
DECLARE dummy INT;
SELECT not a valid email address INTO dummy FROM Users WHERE 1=1
END IF;
END;$$ 

PHPMYADMIN で $$ の区切り文字を使用して上記を実行すると、次のエラーが発生します。

#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 'DECLARE dummy INT; SELECT not a valid email address INTO dummy FROM Users WHERE' at line 6
4

1 に答える 1

0

これを試しましたか?

    CREATE TRIGGER トリガーユーザーメール
    BEFORE INSERT ON ユーザー
    行ごとに
    始める
    DECLARE ダミー INT;
    IF (Users.email NOT LIKE '%@%') THEN
    SELECT 有効な電子メール アドレスではありません INTO ダミーの FROM ユーザー WHERE 1=1
    END IF;
    END;$$

開始後に変数を宣言します。

_ _編集

区切り記号 $$
CREATE TRIGGER トリガーユーザーメール
BEFORE INSERT ON ユーザー
行ごとに
始める
    DECLARE ダミー INT;

    IF (Users.email NOT LIKE '%@%') THEN
        SELECT "not a valid email address" INTO ダミーの FROM ユーザー WHERE 1=1;
    END IF;
終わり;

$$

これは私のサーバーで機能しました

于 2013-04-06T14:49:12.350 に答える