Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
Есть такая таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext Помогите написать триггер/функцию, а может такая ситуация "лечиться" установлением какой-нибудь переменной? Менять запрос на Код: plaintext Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 13:37 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
можно попробовать написать свой каст ... либо ковырять исходники PG и править этот самый каст. либо ковырять свои исходники (что вобщем самый правильный путь) тригер здесь не поможет.. т.к в проверка типов идет до самого запроса где то в районе парсинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 14:57 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
есть еще вариант... делаеш в таблице поле "lang_id" как varchar, далее делаеш тригер который при инсерте IF NEW.lang_id = '' THEN NEW.lang_id= NULL но это затормозит запросы т.к при выборе по lang_id придется его в bigint переколбышивать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 15:03 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
wbearможно попробовать написать свой каст ... Пишу следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext Чтобы не было этой ошибки я должен коннектиться от имени postgres? Правильно ли я пишу функцию и каст? И на сколько это правильно делать такой каст (снижение производительности?)? wbear либо ковырять исходники PG и править этот самый каст. либо ковырять свои исходники (что вобщем самый правильный путь) Ковырять свои исходники не хочеться, но видимо придется. Вообще очень бы хотелось это решить средствами PostgreSQL. Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 15:10 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
wbearесть еще вариант... делаеш в таблице поле "lang_id" как varchar, далее делаеш тригер который при инсерте IF NEW.lang_id = '' THEN NEW.lang_id= NULL но это затормозит запросы т.к при выборе по lang_id придется его в bigint переколбышивать А можно про тригер по подробнее? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 15:22 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
Q.Чтобы не было этой ошибки я должен коннектиться от имени postgres? A. самосабой.. т.к ты переопределяеш уже существующий каст.. Q. Правильно ли я пишу функцию и каст? A.(вспоминается анегдот ..слыш Мыкола ,бачиш как москали пинги(ping'и) обзывают? -Як? ПЫНГИ... -поубывал бы..) > else CAST ($1 AS BIGINT) как думаеш не будит ли у тебя тут рекурсии ? :) Q.И на сколько это правильно делать такой каст (снижение производительности?)? A. само сабой будет снижение . чем то придется жертвовать. Q.А можно про тригер по подробнее? A. кудаж уж подробнее общая идея такая: делаем поле lang_id не bigint а text И храним в нем числа.. ,а при инсертах и апдейтах проверяем на пустую строку и вставляем в нее NULL alter table add columt new_lang_id text; update tables set new_lang_id = lang_id::text; alter table drop columt lang_id; alter table rename column new_lang_id to lang_id; create function my_trg return trigger as ' begin IF NEW.lang_id = '' THEN NEW.lang_id= NULL; end IF; return NEW; if NEW. end;' language .... create trigger before insert & update .... ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 18:38 |
|
||
|
TRIGGER, FUNCTION ?, вставка пустого значения как NULL
|
|||
|---|---|---|---|
|
#18+
Спасибо. Сделаю эти поля varchar(20), забью на правильную сортировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 18:44 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=32991992&tid=2007346]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 369ms |

| 0 / 0 |
