|
|
|
| Есть две таблицы, в каждой таблице есть поле id
как можно удалить одним запросом записи в обоих таблицах с однинаковым id.
DELETE FROM tab1, tab2 WHERE id='какой-то номер';
|
не работает. | |
|
|
|
|
|
|
|
для: Crux
(22.04.2006 в 11:58)
| | Следует поступить следующим образом
DELETE tab1, tab2 FROM tab1, tab2 WHERE tab1.id=tab2.id AND tab1.id=t3.'какой-то номер'
|
| |
|
|
|
|
|
|
|
для: cheops
(22.04.2006 в 15:52)
| | не совсем понятна запись:
... tab1.id=t3.'какой-то номер'
|
откуда взялось t3? | |
|
|
|
|
|
|
|
для: Crux
(22.04.2006 в 16:41)
| | Это опечатка, следует читать
DELETE tab1, tab2 FROM tab1, tab2 WHERE tab1.id=tab2.id AND tab1.id='какой-то номер'
|
| |
|
|
|
|
|
|
|
для: cheops
(22.04.2006 в 21:59)
| | к сожалению так не работает
Ответ MySQL:
#1064 - You have an error in your SQL syntax ...
|
| |
|
|
|
|
|
|
|
для: Crux
(22.04.2006 в 22:08)
| | А у вас какая версия MySQL? | |
|
|
|
|
|
|
|
для: cheops
(22.04.2006 в 22:25)
| | MySQL 3.23.53-max | |
|
|
|
|
|
|
|
для: Crux
(22.04.2006 в 22:30)
| | Старова-то... в ней помоему ещё не было многотабличного оператора DELETE. | |
|
|
|
|
|
|
|
для: cheops
(22.04.2006 в 22:33)
| | да действительно старова-то...
ещё вопрос: транзакции с какой версии поддерживаются (COMMIT ROLLBACK) | |
|
|
|
|
|
|
|
для: Crux
(22.04.2006 в 22:43)
| | 3.23.17 кажется... только при использовании транзакций имеется особенность - они не работают с таблицами MyISAM - нужны специальные транзакционные таблицы, как правило, либо InnoDB, либо BDB, а они медленее MyISAM (иногда в разы). | |
|
|
|