我使用knex创建一个postgres表,如下所示:
knex.schema.createTable('users', table => {
table.bigIncrements('user_id');
....
})
但是在创建表格之后,列user_id
与预期的integer
不是serial
。
pgAdmin的sql get如下:
CREATE TABLE public.users
(
user_id bigint NOT NULL DEFAULT nextval('users_user_id_seq'::regclass),
....
)
结果是,当我insert
语句时,user_id
将不会按预期自动增加。
任何给出?
====================
目前我只是改为mysql连接,插入效果很好。但是如果我将数据库更改回postgresql,那么由于user_id的重复,插入会失败。代码可以在这里找到:https://github.com/buzz-buzz/buzz-service
答案 0 :(得分:2)
serial
和bigserial
不是真正的类型,它们只是pgAdmin显示的简写。
当您查看pgAdmin中的序列时,您还会发现已创建名为users_user_id_seq
的序列。