2012-05-10 16 views
1

次の列名を持つ2つの表があります。トリガー構文エラー

ユーザー

UI |電子メール|合格

user_profiles

_email | qty |

LVL私は毎回新しいユーザーがuser_profiles表は、新規ユーザーのための新しい行を作成することユーザーテーブルに追加されていることを確認しようとしています。しかしそれは失敗する。多くのサンプルトリガーステートメントを読んだ後、私はエラーを見つけられないようです。

CREATE TRIGGER updatUserProfilesTBL AFTER INSERT ON users 
BEGIN 
INSERT INTO user_profiles (_email) 
VALUES (new.email) 
END; 

答えて

1

FOR EACH ROWが見つからないようです。さらに、これをMySQLコマンドラインで実行する場合はDELIMITERを変更し、insert文の後に;を追加する必要があります。

DELIMITER $$ 
CREATE TRIGGER updatUserProfilesTBL AFTER INSERT ON users 
FOR EACH ROW BEGIN 
    INSERT INTO user_profiles (_email) 
    VALUES (new.email); 
END$$ 
DELIMITER ; 

to the CREATE TRIGGER specによると、これはオプションではありません。

+0

これを行うには、自分にスーパーパーミッションを与える必要があります。それを行うためのベストプラクティスは何ですか?私はすぐにその特​​権を取り消すべきですか? – KDEx

+0

@KDEx機能的アプリケーションで使用されるアカウントではなく、管理目的でのみ使用されるアカウントを使用します。 –

+0

私が知る限り、私は管理者として記録されています。私のdbのアカウントは1つだけです。私はphpMyAdminとSequelProのクエリを実行しようとしました – KDEx