SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.03.2010 08:58:43

AlexsWulf
Участник
Зарегистрирован: 28.01.2010
Сообщений: 22

Вопрос по типу INT UNSIGNED

Доброго времени суток.

Подскажите такой момент. Если я пытаюсь записать в поле с типом INT  UNSIGNED отрицательное число то значение поля получается 4294967296.
Можно сделать чтоб при попытке такой записи значение получалось 0 ?

Заранее благодарю за ответ.

Неактивен

 

#2 20.03.2010 12:24:27

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос по типу INT UNSIGNED

Да. Например, с помощью триггера типа BEFORE INSERT.

Неактивен

 

#3 20.03.2010 13:10:57

AlexsWulf
Участник
Зарегистрирован: 28.01.2010
Сообщений: 22

Re: Вопрос по типу INT UNSIGNED

А как это ? Если не секрет.

Неактивен

 

#4 20.03.2010 18:40:23

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос по типу INT UNSIGNED

http://dev.mysql.com/doc/refman/5.4/en/triggers.html

DELIMITER $$
CREATE TRIGGER `имя триггера` BEFORE INSERT ON `имя вашей таблицы`
FOR EACH ROW
BEGIN
 IF NEW.`имя поля` < 0 THEN
    SET NEW.`имя поля` = 0;
 END IF;
END$$

Неактивен

 

#5 22.03.2010 15:35:15

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вопрос по типу INT UNSIGNED

А как Вы добиваетесь того, что сохраняется неправильно?

Код:

[aquatica] root test > create table iu (i int unsigned);
Query OK, 0 rows affected (0,12 sec)

[aquatica] root test > insert iu values (-1);
Query OK, 1 row affected, 1 warning (0,03 sec)

[aquatica] root test > select * from iu;
+------+
| i    |
+------+
|    0 | 
+------+
1 row in set (0,00 sec)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson