如何使用 node-postgres 按顺序使用 nextval

How use nextval in sequence using node-postgres

我的 table postgres 数据库有一个自动递增键。

在传统的 postgres 中 sql 我可以:

INSERT INTO CITY(ID,NAME) VALUES(nextval('city_sequence_name'),'my first city');

如何使用 node-postgres 执行此操作?到目前为止,我已经尝试过:

myConnection.query('INSERT INTO city(id,name) VALUES (,)', ['nextval("city_sequence_name")','my first city'],callback);

但错误规则:

erro { error: sintaxe de entrada é inválida para integer: "nextval("city_sequence_name")"

因此,我能够确定此案例的解决方案:

connection.query("INSERT INTO city(id,name) VALUES(nextval('sequence_name'),)", ['first city'],callback);

这是一种不好的做法。相反,只需将列设置为 DEFAULT nextval() 或使用 serial 类型。

# CREATE TABLE city ( id serial PRIMARY KEY, name text );
CREATE TABLE
# \d city
                         Table "public.city"
 Column |  Type   |                     Modifiers                     
--------+---------+---------------------------------------------------
 id     | integer | not null default nextval('city_id_seq'::regclass)
 name   | text    | 
Indexes:
    "city_pkey" PRIMARY KEY, btree (id)

# INSERT INTO city (name) VALUES ('Houston'), ('Austin');
INSERT 0 2
test=# TABLE city;
 id |  name   
----+---------
  1 | Houston
  2 | Austin
(2 rows)