powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не понимает значение '' для полей типа INT
8 сообщений из 8, страница 1 из 1
не понимает значение '' для полей типа INT
    #32560581
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проапгрейдил до 7.4.1. Что вылезло сразу:

1. старые OPAQUE не берет, нужен TRIGGER
2. отсутствует тип datetime (вообще, как я понял, новая версия несколько по-иному подходит к работе с локальными датой/временем)
3. Очень неприятная особенность (пока, по крайней мере) - теперь в поле INTEGER нельзя вставить значение '' (раньше он его понимал как NULL).
Соответственно, команда copy не подхватывает файлы с недостающими колонками (ранее 7.2. с этим делом справлялся). Как это возможно быстро победить, т.к. довольно много приложений используют такой подход?..
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32560590
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас копаюсь в доках,
для COPY нашел особенность - можно ставить WITH NULL AS ''
можно ли как-нибудь это перенести на обычные INSERT'ы?
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32560687
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Cоpy сойдет и 1\t\t123\n вставит как (1,NULL,123) , а для инсерта такого нету.. заменяй '' на NULL, а вообще странно что '0' оно может в int4 сконвертить ,а из '' может зделать только NULL::text, еше меня убило то что оно(postgres v7.x.x) не знает что такое 0xAF12 и никак его не хочет воспринимать как число(понятно дело функцию можно написать но блин обыдно :))
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32560966
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот засада!
Столько приложений завязано с этой "особенностью"..
Настали мои "жаркие" деньки....................
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32561207
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если код поправить низя то впринцепе можно извратнутся.. делаеш в таблице доп поле mirror_int int4 , а то поле делаеш text , потом пиниш на эту таблицу рулезы на insert,update( которые заполняли бы поле mirrot_int в зависимости от значения исходного поля) и view на таблицу
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32562954
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, ну это можно, имхо, сделать попроще - триггер before update, insert, где в случае new.int='' он меняется на NULL :)

в данном случае вместо триггеров проще было подправить программы :)

просто как-то получается, что прошлые версии не полностью совместимы с предыдущими, а это, имхо, неприятно
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32563962
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е ты хочешь сказать что если есть тригер
....if new.x <> NULL then new.x = 0 else new.x = 1....
на таблицу
some_table (x int4);
то запрос
insert into some_table values ('xxxxxxxxxxxxxxxxxxx');
не выдаст ошибку???

ему в new.int(int4) запихивают text ..думаю еще до тригера вывалица ошибка
...
Рейтинг: 0 / 0
не понимает значение '' для полей типа INT
    #32564048
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
///ему в new.int(int4) запихивают text ..думаю еще до тригера вывалица ошибка

Вы правы :)
Даже в случае с Before insert/update...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / не понимает значение '' для полей типа INT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]