【发布时间】:2021-01-02 02:49:40
【问题描述】:
我有一个两列表格试验(id 序列,值文本)。
然后我使用ALTER TABLE将id的数据类型更改为text,仍然如果我插入如下记录:
insert into trial(value) values('name');
然后,每次我向其中添加行时,serial 仍然会增加。如果我插入一行像
insert into trial values(111111111111....a very large number, 'name');
它仍然有效,它仍然增加串行计数器。
我的问题是: 为什么它不溢出?虽然列的数据类型是文本,但序列值仍会在内部存储为整数,对吧?保存表的序列值的变量的数据类型是什么(在 psql 的实现中),以便我可以确定它永远不会溢出?
【问题讨论】:
-
CREATE TABLE声明是什么? -
创建表试用(id序列,值文本);
-
那么你不能将
ids 存储在2147483647之上。 -
但明确提供大 ID 有效
-
我不相信,如果你真的用过
serial。
标签: postgresql