PostgreSQL中使用用户输入的自定义ID

3qpi33ja  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(157)

我需要创建一个ID,它使用用户输入的数据。例如,第一个字母是“M”,第二个是用户输入的出生年份,然后是用户居住省份的前两个字符(例如,ON代表安大略),然后是一个随机数序列。如下所示:M-1990-ON-0001你知道我怎么做吗?

mzsu5hc0

mzsu5hc01#

您可以将其作为生成的列来执行。例如:

customId text GENERATED ALWAYS AS ('M-'||extract(year from birthdate)::char(4)||'-'||province) STORED

但是,您永远不应该将此类信息作为主键。只为您自己使用一个键,而不要将其作为主键。
DBFiddle demo
如果你想一想,这样的值甚至不会是唯一的(同一个省,同一年,两个人)。

相关问题