我的表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 ($1,$2)', ['nextval("city_sequence_name")','my first city'],callback);
但错误规则:
erro {error:sintaxe deentradaéinválidaparainteger:“nextval(”city_sequence_name“)”
答案 0 :(得分:1)
所以,我能够确定这种情况的解决方案:
connection.query("INSERT INTO city(id,name) VALUES(nextval('sequence_name'),$1)", ['first city'],callback);
答案 1 :(得分:0)
这是一种不好的做法。相反,只需将列设置为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)