我正在尝试在 postgres 嵌入式数据库中使用 currVal 函数来获取我在同一会话的插入语句中插入的值。请在下面找到相同的代码。
学生表定义:
CREATE TABLE student (
id bigserial NOT NULL,
name varchar(255) NOT NULL,
number int8 NOT NULL,
);
CREATE TABLE student_course (
student_id foreign_key references student(id),
course_name varchar(255) NOT NULL
);
查询插入学生:
insert into student (name,number)
values("Student1","55");
查询获取 id 列:
insert into student_course
select currval(pg_get_serial_sequence('student','id')), 'course1';
两个插入查询都在单个会话中运行,但是在使用 currVal 函数获取插入的 id 时我得到空值。
相同的查询适用于实际数据库,但不适用于嵌入式扩展。我正在为嵌入式数据库使用 postgis docker 映像。