Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ON DUPLICATE KEY UPDATE с предупреждением
 
 автор: Eugene77   (20.09.2008 в 12:38)   письмо автору
 
 

Инструкция ON DUPLICATE KEY UPDATE
мне так понравилась, что я её в каждый второй запрос ставлю.
Только вот порой бывает полезно получить сообщение по какому из двух направлений отработал скрипт.
1) Произошла ли вставка новой строки или
2) Встретилось повторение уникального ключа и произошло нечто другое
Как это выяснить?

  Ответить  
 
 автор: Trianon   (20.09.2008 в 12:51)   письмо автору
 
   для: Eugene77   (20.09.2008 в 12:38)
 

Конструкцию нужно применять там, где от нее есть смысл. Где нету - сами понимаете.
Речь идет о многострочных инсертах?

  Ответить  
 
 автор: Eugene77   (20.09.2008 в 20:26)   письмо автору
 
   для: Trianon   (20.09.2008 в 12:51)
 

>Конструкцию нужно применять там, где от нее есть смысл. Где нету - сами понимаете.
Это слишком туманная тема. Можно и так и эдак сделать, и без этой конструкции и с ней. Дело вкуса. Но в любом случае она не зря придумана и упрощает код, порой, довольно заметно.
>Речь идет о многострочных инсертах?
Речь идёт о многих разных случаях, (взялся я причёсывать скрипты и решил обратить внимание на нестандартные ситуации).
Но в целом, чаще всего нет - инсёты однострочные.
Хотя не всегда, есть несколько и многострочных.

  Ответить  
 
 автор: Trianon   (20.09.2008 в 20:42)   письмо автору
 
   для: Eugene77   (20.09.2008 в 20:26)
 

Одного лекарства от всех болезней не бывает.

  Ответить  
 
 автор: Eugene77   (21.09.2008 в 20:38)   письмо автору
 
   для: Trianon   (20.09.2008 в 20:42)
 

"Болезней" я вроде бы назвал всего две, и они выглядят слишком похоже, чтобы заводить на каждую новую тему...
Так что я не понял вашей аргументации.
Ну, если нет возможности ответить сразу на оба вопроса, то ответте хотя бы на один - любой.
Над вторым мне будет проще размышлять.
Или вы правда хотите, чтобы я задал его в новой теме?

  Ответить  
 
 автор: а-я   (20.09.2008 в 15:40)   письмо автору
 
   для: Eugene77   (20.09.2008 в 12:38)
 


При использовании команды REPLACE функция mysql_affected_rows()
вернет значение, равное 2, если старая строка была заменена новой.
Объясняется это тем, что в таблицу 
вставляется строка после того, как удаляется дубликат. 

Это позволяет легко определять, какое действие произвела команда REPLACE - добавление 
или замещение строки. Достаточно просто проверить, какое число вернула функция 
mysql_affected_rows() - 1 (строка добавлена) или 2 (замещена). 


может mysql_affected_rows() так же работает и с ON DUPLICATE KEY UPDATE?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования