sql - Postgres : integer out of range

标签 sql postgresql

我正在运行以下查询:

WITH match_team_vals(match_id, team_id, is_radiant) AS (
VALUES 
(2281450916, 2783913, true),
(2281450916, 2538753, false)
)

INSERT INTO dota_match_team(match_id, team_id, is_radiant)
SELECT match_id, team_id, is_radiant
FROM match_team_vals
RETURNING id AS lineup_id

在这张 table 上:

CREATE TABLE dota_match_team
(
  id serial NOT NULL,
  match_id integer NOT NULL,
  team_id integer,
  is_radiant boolean NOT NULL,
  CONSTRAINT dota_match_teams_pkey PRIMARY KEY (id)
)

我得到的错误信息是

ERROR: integer out of range
SQL state: 22003

我试过将 match_id 和 team_id 转换为 bigint。另外在网上看,我看到人们对连续剧达到整数上限有这个问题。这似乎不是这样的:

SELECT nextval('dota_match_team_id_seq')
returns 31

最佳答案

考虑更改您的表格以使用更大的整数(有关详细信息,请参见此处:http://www.postgresql.org/docs/9.1/static/datatype-numeric.html)。

我认为问题是,您的 match_idteam_idinteger 类型,您尝试插入值 2281450916 ,但整数的最大值是 2147483647

关于sql - Postgres : integer out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36513168/

相关文章:

sql - PostgreSQL 函数迭代/作用于具有状态的多行

sql - PostgreSQL 动态获取转发计数值

sql - 如何通过 order by 降低 sql select 的成本?

mysql - SQL 查询从表的一行中提取一些行

c# - 如何按 child 的 child 的数量在 EF parent 中排序?

java - 使用jdbc连接器在java中的一个查询中进行多个选择-Mysql

regex - 从postgresql中的字符串转换方程

mysql - 有没有办法检查数据库表是否已经包含 Yii2 中具有特定值的记录

database - PostgreSQL 从存储函数访问多个数据库

python - Django:将数据从 SQLite 移动到 PostgreSQL