我在PostgreSQL中有两个表。第一个表应该有一个自增的ID字段,第二个表引用它:
CREATE TABLE tableA (id SERIAL NOT NULL PRIMARY KEY, ...)
CREATE TABLE tableB (parent INTEGER NOT NULL REFERENCES tableA(id), ...)
根据文档,
SERIAL
表示无符号4字节整数,而 INTEGER
则表示有符号整数:serial 4 bytes autoincrementing integer 1 to 2147483647
integer 4 bytes typical choice for integer -2147483648 to +2147483647
如果我理解正确,我使用的数据类型不兼容,但是PostgreSQL显然缺少无符号整数。我知道我可能不会使用超过2*10^9个ID(如果我这样做了,我可以随时使用BIGSERIAL
),而且这并不是很重要,但是对我来说,有符号整数引用无符号整数似乎有点不干净。我相信一定有更好的方法 - 我错过了什么吗?