table constraint + INSERT

From: "Risto Tamme" <risto(at)ektaco(dot)ee>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: table constraint + INSERT
Date: 2006-05-16 21:01:02
Message-ID: E763584E741976409B9F835B475B00FC02DEB4@pe2850.EKTACO.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello

I use PostgreSQL in my program and I found a strange behavior, at least for me.

I have a simple table with constraint

CREATE TABLE "PART"
(
"P_PARTKEY" int4 NOT NULL,
"P_RETAILPRICE" numeric,
CONSTRAINT "PART_PRIMARY" PRIMARY KEY ("P_PARTKEY"),
CONSTRAINT "PART_check" CHECK ("P_RETAILPRICE" = (90000 + "P_PARTKEY" / 10 + "P_PARTKEY" / 100)
);

And I try to insert a row:
INSERT INTO "PART" ("P_PARTKEY","P_RETAILPRICE") VALUES(999,90109.89);

but it fails: ERROR: new row for relation "PART" violates check constraint "PART_check"

When you check using your head or pocket calculator then this INSERT seems to be correct. Is it some floating point mystery?
Is there some trick?
I'm using version 8.0.1 for Windows.

With thanks, Risto


Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Jay Chiu 2006-05-17 01:51:45 Question about SQL Control Structure(if then, for loop)
Previous Message Emi Lu 2006-05-16 14:44:07 Re: Find min and max values across two columns?