|
|
|
| Ка организовать автоматическую запись целого числа в MySQL?
Чтобы как id AUTO_INCREMENT сам записывался, так же и некое number записывалось в виде случайного целого числа от 100 до 999. | |
|
|
|
|
|
|
|
для: Udachix
(14.06.2013 в 12:56)
| | Или в DEFAULT нельзя писать функции? | |
|
|
|
|
|
|
|
для: Udachix
(14.06.2013 в 13:15)
| | Это можно организовать с помощью триггеров. Но нужно чтобы у вас были привилегии на создание триггеров. | |
|
|
|
|
|
|
|
для: Sfinks
(14.06.2013 в 13:18)
| | Так как. Что-то я не подумал о них. И правда, самое удобное средство логи писать. Один раз завести список триггеров, нежели каждый раз при вставке нового сообщения самостоятельно в лог-таблицу писать событие. Хорошо.
Остался один момент — как превратить RAND() с 0,0 до 1,0 в целое трёхзначное число. | |
|
|
|
|
|
|
|
для: Udachix
(14.06.2013 в 13:42)
| | что-то типа ROUND(RAND()*999) | |
|
|
|
|
|
|
|
для: Sfinks
(14.06.2013 в 13:59)
| | Я что-то засомневался. У нас RAND() от 0,1, или 0,0, или 0,001...? | |
|
|
|
|
|
|
|
для: Sfinks
(14.06.2013 в 13:59)
| | Пропадает иногда в два символа всё таки. Как вариант попробовал:
select SUBSTRING( ROUND ( RAND() * 9999 ) , 1 , 3 );
| Тогда вроде всегда три. | |
|
|
|
|
|
|
|
для: Udachix
(14.06.2013 в 14:37)
| | > Я что-то засомневался. У нас RAND() от 0,1, или 0,0, или 0,001...?
Когда сомневаетесь в тонкостях, всегда нужно смотреть в официальном мане:
https://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html#function_rand
> Returns a random floating-point value v in the range 0 <= v < 1.0
А вам надо всегда 3? Я не заметил. Тогда так:
SELECT ROUND(100+RAND()*899)
|
| |
|
|
|
|
|
|
|
для: Sfinks
(14.06.2013 в 16:54)
| | Да, Вы правы, спасибо. | |
|
|
|