2013-05-03 4 views
3

У меня есть таблица под названием ul_logins и таблица под названием userbase и userchanges. Я знаю, хочу, всякий раз, когда я удаляю некоторого пользователя из ul_logins триггера для автоматического удаления того же пользователя с userbase и userchanges. Идентификатор пользователя является id на ul_logins и userID в userbase и userchangesСоздание триггера удаления

Я написал этот триггер в MySQL (PHPMyAdmin)

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
DELETE FROM userbase WHERE userID = :old.id; 
END 

Но это не работает, я получаю сообщение об ошибке все время , Но я не могу найти то, что проблема

# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использования вблизи «TRIGGER deleteUser ПОСЛЕ УДАЛЕНИЕ НА ul_logins ДЛЯ КАЖДОЙ ROW НАЧАТЬ DELETE FROM нас» в строке 1

Я уже гугле и там был другое решение и попробовал это

DELIMITER | 

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
DELETE FROM userbase WHERE userID = :old.id; 
END;| 

DELIMITER ; 

но это не работало neitehr. Какие-либо предложения?

ответ

4

Это должно быть правильный синтаксис:

DROP TRIGGER IF EXISTS deleteUser; 

DELIMITER | 
CREATE TRIGGER deleteUser AFTER DELETE ON ul_logins 
FOR EACH ROW BEGIN 
    DELETE FROM userbase WHERE userID = old.id; 
END; 
| 

DELIMITER ; 
+0

Так что единственное, что я сделал неправильно было ИЛИ ЗАМЕНА? Или я вижу там что-то не так? И да, это работает, спасибо. – loomie

+0

@loomie приветствую :) Да, я не думаю, что можно использовать OR REPLACE, а также старое значение id - «old.id», а не ': old.id' – fthiella

Смежные вопросы