我想在数据库的表中添加一列,以便始终保留该列 作为最后一列,即使稍后添加新列。 例如:
姓名,身份证,地址
我需要添加列时间戳,这将由alter命令完成,它将在最后一个索引处添加列。所以在添加时间戳列
之后姓名,身份证,地址,时间戳
现在假设将来有新要求添加新列phone_number 将运行一个alter命令,它将在timestamp列
之后添加phone_number姓名,身份证,地址,时间戳,电话号码
如果我们想在timestamp之前添加phone_number,我们可以使用AFTER子句,并且可以在Address之后添加phone_number,所以它将成为
姓名,身份证,地址,电话号码,时间戳
但是假设有些用户忘记使用AFTER子句,它将把phone_number放在时间戳之后,因此会破坏说时间戳必须作为最后一列的逻辑。
那么有没有什么方法可以将timestamp列始终保持在最后?
答案 0 :(得分:1)
PostgreSQL不支持这一点,至少在9.5及更早版本中。您无法设置列的顺序。
你并不是真的应该关心 - 列是指名称引用,而不是顺序引用。这是纯粹主义的做法,有时候使用序数位置会很好。您仍然可以,除了删除和重新创建表格之外,您无法更改这些位置。
您只需更改应用程序逻辑,以便按列名获取时间戳。