Sqlite 导入后更新序列值

Sqlite 导入后更新序列值,sqlite,postgresql,Sqlite,Postgresql,我定义了一个串行主键,如下所示: CREATE TABLE auth_event( id serial PRIMARY KEY, time_stamp TIMESTAMP, client_ip VARCHAR(512), user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE, origin VARCHAR(512), description TEXT ); INSERT INTO

我定义了一个
串行主键
,如下所示:

CREATE TABLE auth_event(
    id serial PRIMARY KEY,
    time_stamp TIMESTAMP,
    client_ip VARCHAR(512),
    user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE,
    origin VARCHAR(512),
    description TEXT
);
INSERT INTO "auth_event" VALUES(6,'2012-12-03 21:50:49','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(7,'2012-12-04 07:37:43','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(8,'2012-12-05 11:42:28','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(9,'2012-12-07 08:01:59','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(10,'2012-12-07 16:32:58','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(11,'2012-12-11 15:41:24','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(12,'2012-12-11 22:55:08','127.0.0.1',181,'auth','User 181 Logged-in');
我要导入的转储具有串行字段的显式值,如下所示:

CREATE TABLE auth_event(
    id serial PRIMARY KEY,
    time_stamp TIMESTAMP,
    client_ip VARCHAR(512),
    user_id INTEGER REFERENCES auth_user (id) ON DELETE CASCADE,
    origin VARCHAR(512),
    description TEXT
);
INSERT INTO "auth_event" VALUES(6,'2012-12-03 21:50:49','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(7,'2012-12-04 07:37:43','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(8,'2012-12-05 11:42:28','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(9,'2012-12-07 08:01:59','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(10,'2012-12-07 16:32:58','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(11,'2012-12-11 15:41:24','127.0.0.1',181,'auth','User 181 Logged-in');
INSERT INTO "auth_event" VALUES(12,'2012-12-11 22:55:08','127.0.0.1',181,'auth','User 181 Logged-in');
这意味着,根据这一点,序列值(与
auth_event.id
)将不会得到更新

现在我的问题来了:我使用的框架没有给串行字段赋值。这意味着postgres正在使用默认值,并且由于该值尚未更新,因此会发生冲突


导入后如何更新与
auth_event.id
相关的序列值?

几乎不需要“+1”。序列在返回下一个值之前递增。;)@库林:你确定吗?我在其他地方看到过使用+1()只是为了验证:如何获取某个序列的当前值?我已经尝试过:
select currval(pg_get_serial_sequence('auth_event','id')它只给出:
错误:序列“auth_event_id_seq”的当前值在此会话中尚未定义
确定,因此我这里的问题的答案似乎是否定的:我无法获得序列的当前值(不修改它)。这是正确的吗?
select setval(pg_get_serial_sequence('auth_event' , 'id'), (select max(id) from auth_event) );