添加数据库表列,默认索引为last

时间:2015-10-06 11:16:38

标签: database postgresql

我想在数据库的表中添加一列,以便始终保留该列 作为最后一列,即使稍后添加新列。 例如:

姓名,身份证,地址

我需要添加列时间戳,这将由alter命令完成,它将在最后一个索引处添加列。所以在添加时间戳列

之后

姓名,身份证,地址,时间戳

现在假设将来有新要求添加新列phone_number 将运行一个alter命令,它将在timestamp列

之后添加phone_number

姓名,身份证,地址,时间戳,电话号码

如果我们想在timestamp之前添加phone_number,我们可以使用AFTER子句,并且可以在Address之后添加phone_number,所以它将成为

姓名,身份证,地址,电话号码,时间戳

但是假设有些用户忘记使用AFTER子句,它将把phone_number放在时间戳之后,因此会破坏说时间戳必须作为最后一列的逻辑。

那么有没有什么方法可以将timestamp列始终保持在最后?

1 个答案:

答案 0 :(得分:1)

PostgreSQL不支持这一点,至少在9.5及更早版本中。您无法设置列的顺序。

你并不是真的应该关心 - 列是指名称引用,而不是顺序引用。这是纯粹主义的做法,有时候使用序数位置会很好。您仍然可以,除了删除和重新创建表格之外,您无法更改这些位置。

您只需更改应用程序逻辑,以便按列名获取时间戳。