Как создать триггер для вставки сведений о новых пользователях в другую таблицу? - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь "синхронизировать" внешний скрипт форума (SMF) с моим сайтом. Это означает, что когда пользователь регистрируется на моем веб-сайте, триггер вставляет данные пользователя (имя пользователя, пароль и адрес электронной почты) в таблицу внешних участников форума. Что-то в этом роде, но это неправильно, ошибка SQL.

CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
BEGIN
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);
END

hotaru_users - это таблица пользователей моего сайта, forum_members - таблица внешних пользователей форума, обе таблицы находятся в одной базе данных mysql

ошибка

Erro

consulta SQL:

CREATE TRIGGER forumReg AFTER INSERT ON hotaru_users
FOR EACH
ROW
BEGIN
INSERT INTO forum_members( member_name, email_address, passwd )
VALUES (
NEW.user_username, NEW.user_email, NEW.user_password
);

Mensagens do MySQL : Documentação
#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 '' at line 6 

1 Ответ

1 голос
/ 28 февраля 2012

Либо удалите BEGIN, END:

CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);

или измените разделитель для создания триггера:

DELIMITER $$
CREATE TRIGGER forumReg 
AFTER INSERT ON hotaru_users 
FOR EACH ROW
BEGIN
    INSERT INTO forum_members (member_name, email_address, passwd)
    VALUES (NEW.user_username, NEW.user_email, NEW.user_password);
END 
$$
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...