首页 > 解决方案 > 错误:函数 last_insert_id() 不存在

问题描述

我的查询是:

-- Table: public.student1

-- DROP TABLE public.student1;

CREATE TABLE public.student1
(
    id integer NOT NULL DEFAULT nextval('student1_id_seq'::regclass),
    country character varying(30) COLLATE pg_catalog."default" NOT NULL,
    email character varying(30) COLLATE pg_catalog."default" NOT NULL,
    first_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
    last_name character varying(255) COLLATE pg_catalog."default" NOT NULL,
    section character varying(255) COLLATE pg_catalog."default" NOT NULL,
    sex character varying(255) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT student1_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.student1
    OWNER to postgres;

在运行我的项目时,错误是:

错误:函数 last_insert_id() 不存在

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

标签: postgresql

解决方案


last_insert_id()是一个 mysql 函数,在 postgresql 中不可用。

对于 postgres 使用:

  1. INSERT INTO student1() VALUES () RETURNING id-- 没有额外的查询
  2. SELECT LASTVAL()-- 返回用 nextval 获得的最新值
  3. 使用特定于您的数据库客户端库的东西。

推荐阅读