PostgreSQL float value

오픈소스·2023년 9월 9일
0

psql -h 127.0.0.1 -p 5432 -U <USERNAME> -d <DBNAME>

integer type column에 다음과 같이 입력을 했을 때, 입력되는 값의 변화

public=# UPDATE order SET price = 1000.7 WHERE id = 1830;
UPDATE 1
public=# SELECT price FROM order WHERE id = 1830;
 price
-------
  1001
(1 row)

ORM 사용시에는 parameter가 string으로 전달되어 다음과 같은 에러가 발생할 수 있습니다.

public=# UPDATE order SET price = '1000.7' WHERE id = 1830;
ERROR:  invalid input syntax for type integer: "1000.7"

integer type의 column을 decimal type으로 변경

public=# alter table order
public-#     alter column price type decimal using price::decimal;
ALTER TABLE
    
public=# UPDATE order SET price = 1000.6 WHERE id = 1830;
UPDATE 1
public=# SELECT price FROM order WHERE id = 1830;
 price
--------
 1000.6
(1 row)

public=# UPDATE order SET price = '1000.5' WHERE id = 1830;
UPDATE 1
public=# SELECT price FROM order WHERE id = 1830;
 price
--------
 1000.5    
(1 row)

decimal type의 column을 integer type으로 변경

public=# SELECT price FROM store_order WHERE id = 1830;
 price
--------
 1000.5
(1 row)

public=# alter table store_order
public-#     alter column price type integer using price::integer;
ALTER TABLE
public=# SELECT price FROM store_order WHERE id = 1830;
 price
-------
  1001
(1 row)

0개의 댓글