Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > [mysql] добавление записи


Автор: Agares 16.8.2008, 16:12
Есть таблица, в ней запись, к примеру такая:
id = 5524,
name = 'test'

Можно ли написать такой запрос, что если я добавляю запись с совпадающим id (к примеру, id = 5524, name= 'hello world' ) предыдущая запись удалилась?

Автор: skyboy 16.8.2008, 17:01
может, "заменялась", а не "удалялась"?

Автор: solenko 17.8.2008, 12:40
Если зпменять, то REPLACE.

Автор: yar 17.8.2008, 13:10
Можно написать триггер на BEFORE INSERT, где проверять существует ли запись и удалять её.
Или использовать http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html.
Или же просто написать запрос с условием.. Как описано в дискуссии http://www.sqlrecipes.com/sql_questions_answers/insert_update_record_if_already_exists-6/

Автор: solenko 17.8.2008, 13:42
yar, зачем все эти сложности, если в mysql уже есть команда REPLACE, которая все это делает?

Автор: yar 17.8.2008, 13:51
solenko, 
да, порой самое простое решение и есть самое правильное smile
но вариантов много, мало ли, какой из в конкретной ситуации может оказаться предпочтительнее.

Автор: Agares 18.8.2008, 13:14
Спасибо буду экперементировать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)