MySQL как перекинуть строчку
От: Andrey_V  
Дата: 25.03.03 10:36
Оценка:
Помогите
Как одним запросом выполнить следующую последовательность операций (дабы была атомарность)

INSERT INTO table2 SELECT * FROM table1 where условие;
DELETE FROM table1 WHERE условие;

Поля в таблицах одинаковые.
Нужно эти два запроса объеденить в один. Тип таблиц MyISAM и это тоже необходимо.

возможно ли это в принципе. помогите
Re: MySQL как перекинуть строчку
От: Аноним  
Дата: 25.03.03 10:43
Оценка:
Здравствуйте, Andrey_V, Вы писали:

AV>Помогите

AV>Как одним запросом выполнить следующую последовательность операций (дабы была атомарность)

AV>INSERT INTO table2 SELECT * FROM table1 where условие;

AV>DELETE FROM table1 WHERE условие;

AV>Поля в таблицах одинаковые.

AV>Нужно эти два запроса объеденить в один. Тип таблиц MyISAM и это тоже необходимо.

AV>возможно ли это в принципе. помогите

ИМХО невозможно, но можно использовать триггер (BEFORE DELETE) или хранимую процедуру
(если они есть в MySql)
Re: MySQL как перекинуть строчку
От: vvaizh http://izh-test.sourceforge.net/
Дата: 25.03.03 10:58
Оценка:
Здравствуйте, Andrey_V, Вы писали:

AV>возможно ли это в принципе. помогите


В текущих версиях mysql это в принципе невозможно.. там нет ни триггеров ни хранимых процедур..
Есть транзакции, если это как то поможет (как я понял нет)

Могу посоветовать держать всё в одной таблице, с дополнительным полем-флажком..
Операция изменения значения флажка атомарная
http://izh-test.sourceforge.net/russian/introduction.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.