int
максимальное значение 2 31 -1, первое значение обновления больше, чем оно, так что вызовите ошибку.
INT
-2147483648 до + 2147483647
Вы можете попробовать amount
столбец BIGINT
Тип
BIGINT
-9223372036854775808 до 9223372036854775807
ALTER TABLE order_detail ALTER COLUMN amount TYPE BIGINT;
Типы данных
EDIT
мы можем использовать pg_typeof
, чтобы проверить это.
Запрос № 1
postgresql позволит 429496729600
быть BIGINT
из-за значения, превышающего диапазон int.
SELECT pg_typeof(429496729600 );
| pg_typeof |
| --------- |
| bigint |
Запрос № 2
При умножении на число, которое будет переводиться в int
.
SELECT pg_typeof( 1*15*1 );
| pg_typeof |
| --------- |
| integer |
Посмотреть на БД Fiddle
Запрос
Вы можете использовать 400*1024*1024*1024:: BIGINT
let int
преобразовать в bigint
.
SELECT 400*1024*1024*1024 :: BIGINT;
| ?column? |
| ------------ |
| 429496729600 |
Просмотр на БД Fiddle