我想在数据插入表中时生成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号是否更好?
2条答案
按热度按时间j9per5c41#
要获取
uuid_generate_v4()
,您必须创建"uuid-ossp"
扩展。但是如果您只需要一个版本4的UUID,并且您使用的是一个足够新的PostgreSQL版本,那么您还可以使用内置函数gen_random_uuid()
来完成完全相同的事情。aij0ehis2#
我不能说你应该使用哪个uuid函数,但如果你想使用uuid_generate_v4()函数,我相信它存在于uuid-ossp扩展中。如果扩展在你的服务器上可用,运行:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";