Re: [GENERAL] How to define the limit length for numeric type? - Mailing list pgsql-general

From vod vos
Subject Re: [GENERAL] How to define the limit length for numeric type?
Date
Msg-id 15ac1a71f30.dda97d7113796.4207224267195366292@zoho.com
Whole thread Raw
In response to Re: [GENERAL] How to define the limit length for numeric type?  ("Charles Clavadetscher" <clavadetscher@swisspug.org>)
Responses Re: [GENERAL] How to define the limit length for numeric type?
List pgsql-general
So there is  no other simpler method for checking that? like varchar(4), only 4 char can be input?

would using regexp cost more CPU or memory resources?


 ---- On 星期六, 11 三月 2017 23:21:16 -0800 Charles Clavadetscher <clavadetscher@swisspug.org> wrote ----
 > Hello
 >
 > > -----Original Message-----
 > > From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of vod vos
 > > Sent: Sonntag, 12. März 2017 08:01
 > > To: Pavel Stehule <pavel.stehule@gmail.com>
 > > Cc: pgsql-general <pgsql-general@postgresql.org>
 > > Subject: Re: [GENERAL] How to define the limit length for numeric type?
 > >
 > > Maybe CHECK (goose >= 100 AND goose <= -100)  works better, But if :
 > >
 > > INSERT INTO test VALUES (1, 59.2);
 > > INSERT INTO test VALUES (1, 59.24);
 > > INSERT INTO test VALUES (1, 59.26);
 > > INSERT INTO test VALUES (1, 59.2678);
 > >
 > > The INSERT action still can be done. What I want is just how to limit the length of the insert value, you can just

 > > type format like 59.22, only four digits length.
 >
 > You may change (or extend) the CHECK condition using regexp:
 >
 > SELECT 59.2::TEXT ~ '^[0-9]+\.[0-9]{2}
;
 >  ?column?
 > ----------
 >  f
 >
 > SELECT 59.24::TEXT ~ '^[0-9]+\.[0-9]{2}
;
 >  ?column?
 > ----------
 >  t
 >
 > SELECT 59.26::TEXT ~ '^[0-9]+\.[0-9]{2}
;
 >  ?column?
 > ----------
 >  t
 >
 > SELECT 59.2678::TEXT ~ '^[0-9]+\.[0-9]{2}
;
 >  ?column?
 > ----------
 >  f
 >
 > Of course you can change the part left of the dot to also be limited to 2 digits.
 >
 > Regards
 > Charles
 >
 > >
 > > Thank you.
 > >
 > >
 > >  ---- On 星期六, 11 三月 2017 22:25:19 -0800 Pavel Stehule <pavel.stehule@gmail.com> wrote ----  >  >  > 2017-03-12
 > > 7:14 GMT+01:00 vod vos <vodvos@zoho.com>:
 > >  >
 > >  >  Hi everyone,
 > >  >
 > >  >  How to define the exact limit length of numeric type? For example,  >  >  CREATE TABLE test  (id serial, goose

 > > numeric(4,1));  >  >  300.2 and 30.2 can be inserted into COLUMN goose, but I want 30.2 or 3.2 can not be
inserted, 
 > > how to do this?
 > >  >
 > >  > ostgres=# CREATE TABLE test  (id serial, goose numeric(4,1));CREATE TABLETime: 351,066 mspostgres=# insert into

 > > test values(1,3.2);INSERT 0 1Time: 65,997 mspostgres=# select * from test;┌────┬───────┐│ id │ goose
 > > │╞════╪═══════╡│  1 │   3.2 │└────┴───────┘(1 row)Time: 68,022 ms
 > >  > Regards
 > >  > Pavel
 > >  >  Thank you.
 > >  >
 > >  >
 > >  >
 > >  >  --
 > >  >  Sent via pgsql-general mailing list (pgsql-general@postgresql.org)  >  To make changes to your subscription:
 > >  >  http://www.postgresql.org/mailpref/pgsql-general
 > >  >
 > >  >
 > >
 > >
 > >
 > > --
 > > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription:
 > > http://www.postgresql.org/mailpref/pgsql-general
 >
 >
 >
 > --
 > Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
 > To make changes to your subscription:
 > http://www.postgresql.org/mailpref/pgsql-general
 >




pgsql-general by date:

Previous
From: "Charles Clavadetscher"
Date:
Subject: Re: [GENERAL] How to define the limit length for numeric type?
Next
From: SuperCiccio
Date:
Subject: Re: [GENERAL] Index using in jsonb query