如何使用 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)
我的 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)