|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
28.04.2010, 14:05 | #1 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Ограничение значений в БД
Доброго времени суток сообществу RMDC. Столкнулся проблемой ограничения максимального значения в БД. Например есть таблица в которой колонка с некоторыми цифровыми данными(smallint). Необходимо установить максимальное значение которое может быть в данной колонке. И если есть такая возможность - при превышении данного значения оно сбрасывалось на определенное число/ноль.
Пример таблицы: Код:
---- ----------- ------------ -------------- ID points date date_points ---- ----------- ------------ ------------- 1 59 20100427 5 2 68 20100424 5 3 35 20100406 3 4 22 20100428 0 5 109 20100428 5 6 107 20100428 3 7 1 20100428 1 --------------------------------------------- Код:
execute_query("INSERT INTO `points` (`id`) VALUES (".$_SESSION["user_id"].")"); $_SESSION["points"] = 0; $_SESSION["date"] = date("Ymd"); $_SESSION["date_points"] = 0; Последний раз редактировалось selector; 28.04.2010 в 14:08. |
28.04.2010, 15:13 | #3 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
проще создать триггер для этой таблицы
|
28.04.2010, 15:23 | #4 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Можно примеры привести. Особенно интересует триггер для таблицы.
|
28.04.2010, 16:13 | #6 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Код:
delimiter| CREATE TRIGGER points_limiter AFTER UPDATE ON points IF (NEW.points >= 100) THEN UPDATE points SET points = 0 WHERE id = NEW.id; END IF; END | |
28.04.2010, 16:43 | #7 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Все гораздо проще. Все новые значения points не будут превышать 100:
PHP код:
Последний раз редактировалось ghostpast; 28.04.2010 в 16:47. |
28.04.2010, 18:01 | #8 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Может я что то не так делаю но не выходит(
Очистил таблицу, ввел триггер. Использовал запрос в пхп на сайте и значение все равно превысило 100 |
28.04.2010, 18:05 | #9 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
|
28.04.2010, 18:09 | #10 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Вот таблица:
PHP код:
PHP код:
запросы в php точно INSERT? - не все(1 есть и update) Сервер MySQL точно не урезанный? - MySQL - 5.1.42-50.5.0.3.8 (Ubuntu 9.10) Последний раз редактировалось selector; 28.04.2010 в 18:11. |
28.04.2010, 18:21 | #11 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
PHP код:
|
|
28.04.2010, 18:26 | #12 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Все гениальное просто. Не приметил:
Код:
BEFORE INSERT ON |
28.04.2010, 19:06 | #13 |
Пользователь
Регистрация: 12.03.2010
Адрес: Беларусь
Сообщений: 54
Сказал(а) спасибо: 8
Поблагодарили 24 раз(а) в 17 сообщениях
Записей в дневнике: 1
|
Тригеры как условия срабатываемые при определённых операциях? Те можно для любого оператора (инсерта апдейта) назначить дествие до/после - верно?
|
28.04.2010, 19:45 | #14 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
да. триггеры - те же хранимые процедуры, вызываемые при операциях INSERT, UPDATE и DELETE
Последний раз редактировалось ghostpast; 28.04.2010 в 19:48. |
28.04.2010, 20:50 | #16 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
они появились в 5.0
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Убрать ограничение на статы | Lemex | Корзина | 5 | 15.08.2010 12:48 |
Ограничение на использование игровой почты. | Greshnikk | Новичкам | 0 | 07.06.2010 14:27 |
[9979][patch] Ограничение для арены | Insider42 | Принятые патчи | 1 | 26.05.2010 23:37 |
Ограничение в запросе к sql | Eisenheim | Флудильня | 14 | 17.03.2010 17:31 |