Search Postgresql Archives

Re: How to define the limit length for numeric type?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx> wrote ---- 
 > Hello 
 >  
 > > -----Original Message----- 
 > > From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of vod vos 
 > > Sent: Sonntag, 12. März 2017 08:01 
 > > To: Pavel Stehule <pavel.stehule@xxxxxxxxx> 
 > > Cc: pgsql-general <pgsql-general@xxxxxxxxxxxxxx> 
 > > Subject: Re:  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@xxxxxxxxx> wrote ----  >  >  > 2017-03-12 
 > > 7:14 GMT+01:00 vod vos <vodvos@xxxxxxxx>: 
 > >  > 
 > >  >  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@xxxxxxxxxxxxxx)  >  To make changes to your subscription: 
 > >  >  http://www.postgresql.org/mailpref/pgsql-general 
 > >  > 
 > >  > 
 > >  
 > >  
 > >  
 > > -- 
 > > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: 
 > > http://www.postgresql.org/mailpref/pgsql-general 
 >  
 >  
 >  
 > --  
 > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) 
 > To make changes to your subscription: 
 > http://www.postgresql.org/mailpref/pgsql-general 
 > 




-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux