|
|
|
Поле в таблице принимает только определенные числовые значения
|
|||
|---|---|---|---|
|
#18+
Всем привет! Надо сделать поле, которое будет принимать только несколько числовых значений. Конечно, можно сделать тип ENUM('10','20','30','40','50'), но ведь из БД доставать числа быстрее, чем строки. Или просто сделать INT, но хочется именно ограничить число вариантов значений. Есть ли в MySql что-то вроде INT(0,1,2,3,4,5)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 20:25:48 |
|
||
|
Поле в таблице принимает только определенные числовые значения
|
|||
|---|---|---|---|
|
#18+
Паша01, вообще это желание извращенца, такие проверки на допустимость значений должен делать клиент. но если уж очень хочется свалить это дело на mysql - можно поставить триггер. но тут возникает проблема - что делать если вставляемое значение не соответствует нормам? оптимальный выход - хранимка, в ней проверять и она может вернуть инфу о нормальной/ошибочной вставке/изменение. а доставать из базы что числа, что строки - однох...о. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 20:42:18 |
|
||
|
Поле в таблице принимает только определенные числовые значения
|
|||
|---|---|---|---|
|
#18+
Паша01из БД доставать числа быстрее, чем строкиоткуда миф? Что в виде ENUM, что в виде числа - одного байта достаточно. Паша01Есть ли в MySql что-то вроде INT(0,1,2,3,4,5)?Напрямую - нет. Помимо ENUM еще можно задействовать внешний ключ на таблицу-справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2014, 20:44:38 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1834765]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
77ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 381ms |

| 0 / 0 |
