|
Аналог триггера
|
|||
---|---|---|---|
#18+
На сколько я понял, в 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 и эта запись удалится при удалении той, на которую указывает ключ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2004, 16:43 |
|
Аналог триггера
|
|||
---|---|---|---|
#18+
то что ты читаешь мануал, это конечно хорошо, но читай его полностью. Это то что тебе надо, но там имеются ограничения по типу таблицы CREATE TABLE ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2004, 17:13 |
|
Аналог триггера
|
|||
---|---|---|---|
#18+
Т.е. с таблицами типа MyISAM такая фича не пройдёт? Эххх, придется вручную, через запросы снова. Я читал мануал, да не тот, спасибо, этот гораздо подробнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2004, 10:22 |
|
Аналог триггера
|
|||
---|---|---|---|
#18+
Да, есть два пути: Путь номер #1: Вы создаете базу с таблицами типа MyISAM, тогда прийдется ручками удалять записи по Primary Key ---> Foreign Key Путь номер #2: Вы создаете базу с таблицами типа InnoDB, тогда прийдется не прийдется ручками удалять по Primary Key ---> Foreign Key, за тебя это сделает сама MySQL, фишка в том, что только этот формат поддерживает каскадные обновления и удаления, прямой аналог триггера, но уже в самой системе. /MySQLdb/ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2004, 14:31 |
|
|
start [/forum/topic.php?fid=47&msg=32411382&tid=1855406]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 182ms |
0 / 0 |