Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Стоит задача - добавить в таблицу поле, значение которого будет вычисляться на основании работы функции (результтат отработки) - один раз. Структура таблицы id Primary Seial key, ... cat_id int4 (идентификатор категории), cat_mainid (идентификатор главной категории) Как я писал ALTER TABLE shop_goods ADD COLUMN cat_mainid int4 DEFAULT getmothid(cat_id); я понимаю что это неверно... Скажите как верно. я не хочу чтобы идентификатор главной категории (cat_mainid) вычислялся каждый раз... я хочу чтобы он был значением по умолчанию... То есть вставил значение после отработки функции в поле и все - дальше просто из него читаешь... как реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 19:54 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
twistfireКак я писал ALTER TABLE shop_goods ADD COLUMN cat_mainid int4 DEFAULT getmothid(cat_id); я понимаю что это неверно... А я не понимаю, почему это не верно. Можешь рассказать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2006, 16:48 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
Функцию можно объявить как STABLE или IMMUTABLE - как в твоем случае ты сочтешь правильным. ===================================== Страну, в которой все ходят на бровях, на колени не поставишь... ===================================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2006, 23:35 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
Функцию можно объявить как STABLE или IMMUTABLE - как в твоем случае ты сочтешь правильным. и что из этого следует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2006, 08:43 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
pamir twistfireКак я писал ALTER TABLE shop_goods ADD COLUMN cat_mainid int4 DEFAULT getmothid(cat_id); я понимаю что это неверно... А я не понимаю, почему это не верно. Можешь рассказать? Я могу. Если у тебя будет долго вычисляться данная функция, то каждый инсерт будет тормозить. Есть три типа функций: 1. VOLATILE - значение вычисляется при каждом вызове. 2. SATBLE - при определенных параметрах в течение одной транзакции выдает один и тот же результат. Таким образом объявленные функции не имеют права модифицировать БД. 3. IMMUTABLE - при определенных значениях выдают один и тот же результат всегда. Не имеют права модифицировать БД. Сам понимаешь, что например IMMUTABLE-функция будет вычислена всего один раз для каждого параметра, а затем оптимизатор будет использовать в запросах уже вычислнное значение. Думаю, что в случае господина twistfire будет достаточным объявить функцию как STABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2006, 08:51 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
то есть если ее объявить STABLE (кстати как это сделать?), то значение, которое будет вставляться при инсерте больше не будет вычисляться? То есть только при инсерте? При селекте оттуда уже просто будут считываться данные? А вот если объявить Immutable - тогда каждый раз при обращении к полю функция будет отрабатывать, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2006, 09:14 |
|
||
|
присвоение значения по умолчанию
|
|||
|---|---|---|---|
|
#18+
twistfireто есть если ее объявить STABLE (кстати как это сделать?), то значение, которое будет вставляться при инсерте больше не будет вычисляться? То есть только при инсерте? При селекте оттуда уже просто будут считываться данные? Роман, я именно и поэтому его спросил. Человек считает, что дефолтовые значения вычисляются при селекте. Это я хотел услышать от него (т.к. не был уверен в своем выводе) чтобы объяснить ему, что он не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2006, 10:45 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33991427&tid=2006096]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 419ms |

| 0 / 0 |
