我使用PostgreSQL 9.0 beta 4版本一個空行空與類似值不空場
插入大量數據到分區表後,我發現了一個奇怪的事情。當我查詢表格時,我可以在'not-null'字段中看到一個空值的空行。
奇怪的查詢結果如下所示。
第689行是空的。前三個字段(stid,d,ticker)構成主鍵。所以他們不應該是空的。我使用的查詢是這樣的。
select * from st_daily2 where stid=267408 order by d
我甚至可以在這個數據上做羣組。
select stid, date_trunc('month', d) ym, count(*) from st_daily2
where stid=267408 group by stid, date_trunc('month', d)
'group by'結果仍然有空行。
的第一行是空的。 但是,如果我查詢'stid'或'd'爲空,那麼它什麼都不返回。
這是postgresql 9b4的bug嗎?或者一些數據損壞?
編輯:
我說我的表定義。
CREATE TABLE st_daily ( stid integer NOT NULL, d date NOT NULL, ticker character varying(15) NOT NULL, mp integer NOT NULL, settlep double precision NOT NULL, prft integer NOT NULL, atr20 double precision NOT NULL, upd timestamp with time zone, ntrds double precision ) WITH ( OIDS=FALSE ); CREATE TABLE st_daily2 ( CONSTRAINT st_daily2_pk PRIMARY KEY (stid, d, ticker), CONSTRAINT st_daily2_strgs_fk FOREIGN KEY (stid) REFERENCES strgs (stid) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT st_daily2_ck CHECK (stid >= 200000 AND stid < 300000) ) INHERITS (st_daily) WITH ( OIDS=FALSE );
此表中的數據是模擬結果。用C#編寫的多線程多重仿真引擎使用Npgsql將數據插入數據庫。
psql還顯示空行。
感謝您的回答。我在我的文章中添加了關於您的問題的答案。 – 2010-08-30 13:45:06
我向postgresql.org提交了一個錯誤報告,並得到了需要審查員批准的回覆。 – 2010-08-30 13:51:32