Задавайте вопросы, мы ответим
Вы не зашли.
Пример
mysql> use test;
Database changed
mysql> create table tst (id int, st varchar(5));
Query OK, 0 rows affected (0.09 sec)
mysql> insert into tst values (1,'q'),(2,'w');
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from tst;
+------+------+
| id | st |
+------+------+
| 1 | q |
| 2 | w |
+------+------+
2 rows in set (0.00 sec)
mysql> update tst set st = 'w' where id = 2;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> update tst set st = 'w' where id = 3;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 0 Changed: 0 Warnings: 0
Возможно ли получить значение Rows matched, чтобы понять, изменения не производились так как не найдено соответствие условию или потому что новое значение поля равно старому?
Неактивен
В MySQL 5.0 есть функция ROW_COUNT() - вернет количество измененных (в т.ч. добавленных или удаленных) строк:
http://dev.mysql.com/doc/refman/5.0/en/ … _row-count
Неактивен
LazY написал:
В MySQL 5.0 есть функция ROW_COUNT() - вернет количество измененных (в т.ч. добавленных или удаленных) строк:
http://dev.mysql.com/doc/refman/5.0/en/ … _row-count
Не сработает.
В обоих случаях вернет 0.
Неактивен
Пардон. ROW_COUNT() - это для Rows affected (т.е. количество измененных записей).
Для выяснения числа совпадений придется использовать отдельный SELECT с таким же условием.
(ну, или как извращение - триггер на UPDATE, но это далеко не всегда подойдет)
Неактивен
LazY написал:
Пардон. ROW_COUNT() - это для Rows affected (т.е. количество измененных записей).
Для выяснения числа совпадений придется использовать отдельный SELECT с таким же условием.
(ну, или как извращение - триггер на UPDATE, но это далеко не всегда подойдет)
SELECT не прокатит
user прав не имеет читать из этой таблицы
Про триггер это мысль.
Пороюсь. Может удастся ошибку спровоцировать.
Неактивен
Тема закрыта.
OLD и NEW в триггере.
Неактивен
В триггере ошибку провоцировать - это плохо... Зачем ошибку-то?
Неактивен
LazY написал:
В триггере ошибку провоцировать - это плохо... Зачем ошибку-то?
А что плохого.
Хандлером в ХП ее отрабатываем.
Если она вылазит не по отработчику - значит что то с секьюрити не так и нах на 404.
Неактивен