postgresql 为插入语句生成UUID

4ngedf3f  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(2)|浏览(345)

我想在数据插入表中时生成uuid,如下所示e58ed763-928c-4155-bee9-fdbaaadc15f3

CREATE TABLE IF NOT EXISTS bin_lists
(
    id uuid NOT NULL,
    bin integer,
    card_brand character varying(64) COLLATE pg_catalog."default",
    status character varying(255) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT bin_lists_pkey PRIMARY KEY (id)
)

我试着使用这个SQL查询:

INSERT INTO bin_lists(id, bin, card_brand, status) VALUES(uuid_generate_v4(), 122088, 'UATP', 'ACTIVE');

我得到错误:ERROR: function uuid_generate_v4() does not exist你知道我怎么解决这个问题吗?
使用这个列定义id UUID DEFAULT gen_random_uuid (),并让数据库为每个插入生成uuid号是否更好?

j9per5c4

j9per5c41#

要获取uuid_generate_v4(),您必须创建"uuid-ossp"扩展。但是如果您只需要一个版本4的UUID,并且您使用的是一个足够新的PostgreSQL版本,那么您还可以使用内置函数gen_random_uuid()来完成完全相同的事情。

aij0ehis

aij0ehis2#

我不能说你应该使用哪个uuid函数,但如果你想使用uuid_generate_v4()函数,我相信它存在于uuid-ossp扩展中。如果扩展在你的服务器上可用,运行:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

相关问题