0
Я бегу Postgres 9.2.4 с расширением hstore (на Windows)PostgreSQL populate_record и hstore
Учитывая таблицу:
CREATE Table tmpM (
id bigserial NOT NULL,
EventId bigint NOT NULL,
LoginId bigint NOT NULL,
CONSTRAINT tmpM_key PRIMARY KEY (id));
Я пытаюсь запустить это заявление:
SELECT * from populate_record(null::tmpM, '"EventId"=>"123", "LoginId"=>"456"')
Я получаю результат из 1 строки, но все значения равны нулю. Любые идеи относительно того, что я делаю неправильно?
Обработка ошибок * - это хорошо в Postgres (гораздо более строгая, чем в большинстве других СУБД) - просто не с «схемой» (и неаудирующий) тип данных, такой как hstore. –
Полностью согласен - то, что я «бухал» о том, как Postgre обрабатывает чувствительность к регистру. В некоторых dbms вы можете указать, является ли схема чувствительной к регистру или нет. В Postgres такой установки нет ... вместо этого у вас есть двойные кавычки, которые поддерживают этот случай. В любом случае наш опыт с Postgres был очень положительным в целом. – ozczecho
Postgres соответствует требованиям стандарта SQL, когда речь идет о цитируемых идентификаторах. Единственная часть, в которой он отклоняется, состоит в том, что она сворачивает все в нижний регистр, тогда как для стандартного требования необходимо сбрасывать неупомянутые имена в верхний регистр. Эти «другие» СУБД просто игнорируют (читайте: нарушайте) стандарт. (И, пожалуйста, не используйте «Postgre» - это «Postgres») –