Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аналог триггера / 5 сообщений из 5, страница 1 из 1
16.02.2004, 16:43
    #32410776
40Mines
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог триггера
На сколько я понял, в MySQL, их нету, однако мне нужно удалить все записи таблицы, ссылающиеся на запись в другой таблице при удалении оной (записи , не таблицы). Как мне это сделать? В описании оператора создания таблицы

CREATE TABLE table_name (create_definition, ...)

Здесь create_definition имеет следующий формат:


create_definition:
column_name type NOT NULL [DEFAULT default_value] [ PRIMARY KEY ] or
column_name type [NULL] [ PRIMARY KEY ] or
PRIMARY (KEY|INDEX) [key_name] ( column_name,... ) or
(KEY|INDEX) [key_name] ( column_name[length],...) or
INDEX [key_name] ( column_name[length],...) or
UNIQUE (column_name[length],...) or
FOREIGN (KEY|INDEX) [key_name] (column_name[length],...)
REFERENCES table_name
[ON DELETE (RESTRICT | CASCADE | SET NULL) ]


последняя строчка [ON DELETE (RESTRICT | CASCADE | SET NULL) ]. Это то, что мне нужно? Т.е. в описании поля внешнего ключа мне надо поставить ON DELETE CASCADE и эта запись удалится при удалении той, на которую указывает ключ?
...
Рейтинг: 0 / 0
16.02.2004, 17:13
    #32410846
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог триггера
то что ты читаешь мануал, это конечно хорошо, но читай его полностью.
Это то что тебе надо, но там имеются ограничения по типу таблицы
CREATE TABLE
...
Рейтинг: 0 / 0
17.02.2004, 10:22
    #32411382
40Mines
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог триггера
Т.е. с таблицами типа MyISAM такая фича не пройдёт? Эххх, придется вручную, через запросы снова.

Я читал мануал, да не тот, спасибо, этот гораздо подробнее.
...
Рейтинг: 0 / 0
17.02.2004, 14:31
    #32412014
MySQLdb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог триггера
Да, есть два пути:
Путь номер #1: Вы создаете базу с таблицами типа MyISAM, тогда
прийдется ручками удалять записи
по Primary Key ---> Foreign Key

Путь номер #2: Вы создаете базу с таблицами типа InnoDB, тогда
прийдется не прийдется ручками удалять
по Primary Key ---> Foreign Key,
за тебя это сделает сама MySQL,
фишка в том, что только этот формат поддерживает
каскадные обновления и удаления,
прямой аналог триггера, но уже в самой системе.



/MySQLdb/
...
Рейтинг: 0 / 0
17.02.2004, 14:50
    #32412070
40Mines
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аналог триггера
да, просто я не знаю заранее, в какой системе (вернее в какой из версий) будет работать моя база и поддерживаются ли там InnoDB.
Ладно, уже сделал вручную, всем спасибо.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аналог триггера / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]