powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аналог триггера
5 сообщений из 5, страница 1 из 1
Аналог триггера
    #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
Аналог триггера
    #32410846
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что ты читаешь мануал, это конечно хорошо, но читай его полностью.
Это то что тебе надо, но там имеются ограничения по типу таблицы
CREATE TABLE
...
Рейтинг: 0 / 0
Аналог триггера
    #32411382
40Mines
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. с таблицами типа MyISAM такая фича не пройдёт? Эххх, придется вручную, через запросы снова.

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

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



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


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