Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
DesMoines
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 2
1

Триггер удаление данных из связанных таблиц

18.04.2013, 17:02. Просмотров 1871. Ответов 1
Метки нет (Все метки)

Есть база с таблицами user, message, messages_private

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `fatelook`.`user` (
    `user_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `login` VARCHAR(50) NOT NULL ,
    `password` VARCHAR(50) NOT NULL ,
    `first_name` VARCHAR(50) NOT NULL ,
    `last_name` VARCHAR(50) NOT NULL ,
    `email` VARCHAR(50) NOT NULL ,
    `city_fk` INT(11) UNSIGNED NOT NULL DEFAULT '0',
    `address` VARCHAR(50) NOT NULL ,
    `avatar` BLOB,
    `sex` VARCHAR(32) ,
    `birth_date` DATE ,
    `reg_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `role` VARCHAR(32) DEFAULT 'member' ,
    CONSTRAINT `city_fk`
        FOREIGN KEY (`city_fk` ) REFERENCES `fatelook`.`city` (`city_id` )  
)ENGINE = InnoDB DEFAULT CHARACTER SET=utf8;
SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE  TABLE IF NOT EXISTS `fatelook`.`message` (
  `message_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `message` TEXT NOT NULL ,
  `sender_fk` INT NOT NULL ,
  `date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
  CONSTRAINT `sender_fk`
    FOREIGN KEY (`sender_fk` )
    REFERENCES `fatelook`.`user` (`user_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)ENGINE = InnoDB DEFAULT CHARACTER SET=utf8;
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE  TABLE IF NOT EXISTS `fatelook`.`messages_private` (
  `receiver_private_fk` INT(11) NOT NULL ,
  `message_private_fk` INT NOT NULL ,
  INDEX `receive_private_fk` (`receiver_private_fk` ASC) ,
  INDEX `message_private_fk` (`message_private_fk` ASC) ,
  CONSTRAINT `receiver_private_fk`
    FOREIGN KEY (`receiver_private_fk` )
    REFERENCES `fatelook`.`user` (`user_id` ),
  CONSTRAINT `message_private_fk`
    FOREIGN KEY (`message_private_fk` )
    REFERENCES `fatelook`.`message` (`message_id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)ENGINE = InnoDB DEFAULT CHARACTER SET = UTF8;
Всё бы хорошо, но захотел сделать триггер, который обеспечивает удаление из таблицы messages_private записи, при удалении соответсвующей записи из таблицы message

получилось вот что
SQL
1
2
3
4
5
6
7
8
9
10
11
CREATE TRIGGER DELETE_PRIVATE_MESSAGE
    ON `FATELOOK`.`MESSAGE` 
    FOR DELETE
AS
    DELETE FROM 
        `FATELOOK`.`MESSAGES_PRIVATE` JOIN `FATELOOK`.`MESSAGE`
        ON MESSAGES_PRIVATE.MESSAGE_PRIVATE_fk = MESSAGE.MESSAGE_ID
    WHERE MESSAGE_PRIVATE_fk IN
        (SELECT DELETED.MESSAGE_ID FROM DELETED);
 
END
но всё же триггер содержит ошибки....
помогите пожалуйста разобраться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 17:02
Ответы с готовыми решениями:

Удаление связанных таблиц
Как очистить (delete ) и как удалить (drop table ) таблицы, которые связаны...

Удаление поля связанных таблиц
умеется таблицы, одна из них родительная а остальные дочерние, Так что мне...

Копирование данных связанных таблиц
Подскажите пожалуйста, как скопировать данные из группы связанных таблиц одной...

Вывод отсортированных данных из связанных таблиц
Здравствуйте! Пожалуйста помогите с заданием, хотя бы советом, что гуглить....

Удаление данных из таблиц
Здравствуйте. Есть несколько таблиц: товары, заказы, продажи, они связана...

1
cygapb-007
1306 / 938 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
18.04.2013, 19:51 2
1) Вам в форум по MySQL
2) Для удаления в таблице не нужен JOIN
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2013, 19:51

C# and sql server, исправить ошибку-удаление данных из таблиц
Здравствуйте! Прошу Вашей помощи. У меня есть проект в visual studio forms с...

Обновление связанных таблиц
Собственно возникла такая вот проблема. Пробовал в свойствах связей задавать...

Insert и обновление связанных таблиц
Тему назвал неправильно, не Insert а UPDATE. Есть две таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru