|
|
|
| Инструкция ON DUPLICATE KEY UPDATE
мне так понравилась, что я её в каждый второй запрос ставлю.
Только вот порой бывает полезно получить сообщение по какому из двух направлений отработал скрипт.
1) Произошла ли вставка новой строки или
2) Встретилось повторение уникального ключа и произошло нечто другое
Как это выяснить? | |
|
|
|
|
|
|
|
для: Eugene77
(20.09.2008 в 12:38)
| | Конструкцию нужно применять там, где от нее есть смысл. Где нету - сами понимаете.
Речь идет о многострочных инсертах? | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 12:51)
| | >Конструкцию нужно применять там, где от нее есть смысл. Где нету - сами понимаете.
Это слишком туманная тема. Можно и так и эдак сделать, и без этой конструкции и с ней. Дело вкуса. Но в любом случае она не зря придумана и упрощает код, порой, довольно заметно.
>Речь идет о многострочных инсертах?
Речь идёт о многих разных случаях, (взялся я причёсывать скрипты и решил обратить внимание на нестандартные ситуации).
Но в целом, чаще всего нет - инсёты однострочные.
Хотя не всегда, есть несколько и многострочных. | |
|
|
|
|
|
|
|
для: Eugene77
(20.09.2008 в 20:26)
| | Одного лекарства от всех болезней не бывает. | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 20:42)
| | "Болезней" я вроде бы назвал всего две, и они выглядят слишком похоже, чтобы заводить на каждую новую тему...
Так что я не понял вашей аргументации.
Ну, если нет возможности ответить сразу на оба вопроса, то ответте хотя бы на один - любой.
Над вторым мне будет проще размышлять.
Или вы правда хотите, чтобы я задал его в новой теме? | |
|
|
|
|
|
|
|
для: Eugene77
(20.09.2008 в 12:38)
| |
При использовании команды REPLACE функция mysql_affected_rows()
вернет значение, равное 2, если старая строка была заменена новой.
Объясняется это тем, что в таблицу
вставляется строка после того, как удаляется дубликат.
Это позволяет легко определять, какое действие произвела команда REPLACE - добавление
или замещение строки. Достаточно просто проверить, какое число вернула функция
mysql_affected_rows() - 1 (строка добавлена) или 2 (замещена).
|
может mysql_affected_rows() так же работает и с ON DUPLICATE KEY UPDATE? | |
|
|
|