Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL填充U记录和hstore_Postgresql_Postgresql 9.2_Hstore - Fatal编程技术网

PostgreSQL填充U记录和hstore

PostgreSQL填充U记录和hstore,postgresql,postgresql-9.2,hstore,Postgresql,Postgresql 9.2,Hstore,我正在运行带有hstore扩展的Postgres 9.2.4(在Windows上) 给出一张表格: 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

我正在运行带有hstore扩展的Postgres 9.2.4(在Windows上)

给出一张表格:

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,但案例处理是…呃…不太好:-)

Postgres中的错误处理很好(实际上比大多数其他DBMS更严格)-只是不支持hstore这样的“无模式”(非验证)数据类型。我完全同意-我“抱怨”的是Postgre如何处理区分大小写的问题。在某些dbms中,您可以指定模式是否区分大小写。在Postgres中没有这样的设置……相反,你有双引号来维护大小写。总之,我们对Postgres的exp总体来说是非常积极的。Postgres符合SQL标准关于带引号的标识符的要求。唯一不同的是,它将所有内容折叠为小写,而标准要求将不带引号的名称折叠为大写。那些“其他”DBMS只是忽略(读:违例)标准。(请不要使用“Postgre”-这是“Postgres”)很公平。顺便说一句,Postgre是一个打字错误;-)