|
|
|
Каскадное удаление
|
|||
|---|---|---|---|
|
#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, 04:58 |
|
||
|
Каскадное удаление
|
|||
|---|---|---|---|
|
#18+
nujno ispolzyvat tablicy InnoDB http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 11:14 |
|
||
|
Каскадное удаление
|
|||
|---|---|---|---|
|
#18+
!) delete * from contracts where agent_id = 5 ; 2) delete * from agents where agent_id = 5 ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 16:33 |
|
||
|
Каскадное удаление
|
|||
|---|---|---|---|
|
#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, 03:54 |
|
||
|
Каскадное удаление
|
|||
|---|---|---|---|
|
#18+
авторА если таблиц 20 и они все связаны подобным образом? 1. использовать тот вариант mysql, который поддерживает foreign key + транзакции; 2. сидеть и расписывать удаление для каждой из 20 таблиц. (особенно весело, если посреди удаления выключат свет). 3. не использовать mysql (может стоит взять что-нить посерьезнее?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 10:11 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=678&tid=1854855]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 371ms |

| 0 / 0 |
