討論區: 公開討議 (Thread #17898)

Postgresでfloat4に桁数オーバーで入力した時の動作について (2008-03-04 10:36 by y-horie #35410)

こんにちは。

float4のフィールドに桁数オーバーで入力してEnterを押すと、「正常に更新しましたが、再検索に失敗しました。」というメッセージが表示されました。

このメッセージが出たあとに正常な値を入力してEnterを押しても、「更新レコードが無い為、再検索します」というメッセージが出て更新できませんでした。

以上宜しくお願いします。

RE: Postgresでfloat4に桁数オーバーで入力した時の動作について (2008-03-05 13:05 by zigen #35429)

こんにちは、ZIGENです。

対象のCREATE TABLE文のサンプルを教えていただけませんか?

また、PostgreSQLの管理ツール(PgAdminIII)からは
正常に更新できますか?


ちなみに、
・float4型のカラムをPrimaryKeyにしている場合
・PrimaryKeyの無いないテーブル

の場合は、正常に更新できないことがあります。

PostgreSQLでのfloat型は、更新時の値と
表示する際の値に、誤差が生じることがあるようで、
その場合は、正常に更新することができません。

参考
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-8.1-ja/datatype.html#DATATYPE-FLOAT
回覆: #35410

RE: Postgresでfloat4に桁数オーバーで入力した時の動作について (2008-03-05 17:32 by 匿名 #35440)

こんにちは。

>対象のCREATE TABLE文のサンプルを教えていただけませ>んか?
以下になります。
CREATE TABLE public.test
(
test1 INT8,
test2 FLOAT8,
test3 INT4,
test4 FLOAT4,
test5 VARCHAR(5),
test6 BPCHAR(5)
);


>また、PostgreSQLの管理ツール(PgAdminIII)からは
>正常に更新できますか?
正常に更新できました。

>ちなみに、
>・float4型のカラムをPrimaryKeyにしている場合
>・PrimaryKeyの無いないテーブル

>の場合は、正常に更新できないことがあります。
対象のテーブルはprimarykeyがないのでこれが原因かもしれないです。

以上宜しくお願いします。
回覆: #35429