PostgresSQL使用序列通过引用其他列来填充新列

PostgresSQL使用序列通过引用其他列来填充新列,sql,postgresql,sequence,surrogate-key,Sql,Postgresql,Sequence,Surrogate Key,我希望我能解释清楚。我需要执行的任务如下: 我有一个表,其中包含一个按三个级别组织的操作目录:(I)category(varchar),(ii)subcategory(varchar)和(iii)description(varchar) 然后我需要使用之前创建的序列创建一个新列(从1开始,递增1个单位)。我需要组合级别1、2和3,以便获得引用这三个级别的新列的(数字)值 据我所知(很少),我需要这样做: 我们在初始表中有4列:订单代码、类别、子类别、说明。 我必须创建第五列。 假设有: 6类

我希望我能解释清楚。我需要执行的任务如下:

我有一个表,其中包含一个按三个级别组织的操作目录:(I)category(varchar),(ii)subcategory(varchar)和(iii)description(varchar)

然后我需要使用之前创建的序列创建一个新列(从1开始,递增1个单位)。我需要组合级别1、2和3,以便获得引用这三个级别的新列的(数字)值

据我所知(很少),我需要这样做:

我们在初始表中有4列:订单代码、类别、子类别、说明。 我必须创建第五列。 假设有:

  • 6类
第1类、第2类、第3类……第6类

  • 15个子类别: 子单元1,子单元2,…,子单元15

  • 27不同可能操作的说明: 描述1,描述2…描述27

对于类别1、子类别2和描述26,我必须生成代码“1”+“2”+“26”=1226,并在新列中插入此值


我该怎么做呢?

Hmm,使用它不会生成适合键的值。假设有一行包含类别12子类别2和描述6。您将得到1226,就像示例中的另一行一样。只需在“类别”、“子类别”和“说明”列上声明一个复合主键。根据您的编号方法1111-是1111还是1111?您这样做的原因是什么?看起来这只是一个复合键,可以像保留键的结构一样使用它。其中一个原因如上所述,另一个原因是,当您将向结构中添加更多列时,您需要相应地更新所有数据库中的所有引用值是的,请描述您要执行的操作的目的。