Задавайте вопросы, мы ответим
Вы не зашли.
У меня есть 2 таблицы.
CREATE TABLE IF NOT EXISTS `parent` (
`id` int(5) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `child` (
`id` int(11) NOT NULL,
`text` text,
FOREIGN KEY (id) REFERENCES page(id) ON DELETE CASCADE ON UPDATE CASCADE
)
Когда удаляю запись из таблицы parent, запись из child удаляется автоматически. Можно ли сделать таким образом, чтобы при добавлении записи в parent, запись в child создавалась автоматически. Как это можно сделать ?
Неактивен
Добавляя запись в parent с помощью хранимой процедуры, которая будет добавлять нужную запись в child.
Неактивен
т.е. вы говорите что единственный способ это реализовать через триггер ?
Неактивен
Можно и через триггер, но лучше с помощью хранимой процедуры. В этом случае можно реализовать через транзакцию, чтобы не возникло ситуации - в parent добавление произошло, а в child нет.
Неактивен
Я решил, все таки испольовать триггер, чтобы более автоматизировать процесс. Но никак не могу разобраться почему мой триггер не срабатывает
BEGIN
INSERT INTO page_data
SET
page_data.id = (SELECT MAX(id) FROM page) AND
page_data.name = (SELECT NAME FROM name WHERE id = (SELECT MAX(id) FROM page));
END
В то время как такой работает
BEGIN
INSERT INTO page_data
SET
page_data.id = (SELECT MAX(id) FROM page);
END
В чем моя ошибка
Неактивен
SELECT NAME FROM name -- подозреваю, что таблица всё-таки не name.
А может всё гораздо проще:
Неактивен
спасибо
Неактивен