
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.08.2004, 04:58
|
|||
|---|---|---|---|
|
|||
Каскадное удаление |
|||
|
#18+
Использую Delphi с MySQL Есть таблицы: "Агенты": agents( agent_id INT(11) auto_increment NOT NULL, fio VARCHAR(50), PRIMARY KEY('agent_id) ) и "Договора": contracts( contract_id INT(11) auto_increment NOT NULL, price DOUBLE, agent_id INT(11), PRIMARY KEY('contract_id') ) Как сделать так, чтобы при удалении агента, например, с agent_id="5" удалялись все записи из contracts, имеющих agent_id="5" Спасибо большое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.08.2004, 11:14
|
|||
|---|---|---|---|
Каскадное удаление |
|||
|
#18+
nujno ispolzyvat tablicy InnoDB http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.08.2004, 16:33
|
|||
|---|---|---|---|
Каскадное удаление |
|||
|
#18+
!) delete * from contracts where agent_id = 5 ; 2) delete * from agents where agent_id = 5 ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2004, 03:54
|
|||
|---|---|---|---|
|
|||
Каскадное удаление |
|||
|
#18+
А если таблиц 20 и они все связаны подобным образом? Тогда получится такой SQL: DELETE FROM contracts WHERE agent_id=5 DELETE FROM agents WHERE agent_id=5 DELETE FROM stat WHERE contract_id=<> ... ... ... ... ... ... ... и так 20 раз? А на уровне сервера нельзя ничего сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2004, 10:11
|
|||
|---|---|---|---|
Каскадное удаление |
|||
|
#18+
авторА если таблиц 20 и они все связаны подобным образом? 1. использовать тот вариант mysql, который поддерживает foreign key + транзакции; 2. сидеть и расписывать удаление для каждой из 20 таблиц. (особенно весело, если посреди удаления выключат свет). 3. не использовать mysql (может стоит взять что-нить посерьезнее?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1854855]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 356ms |

| 0 / 0 |
