【问题标题】:add column to existing table postgres将列添加到现有表 postgres
【发布时间】:2020-12-19 09:21:23
【问题描述】:

我在 prod 环境中创建了一个 table1。我必须将列添加到现有的 table1。 我使用函数 create 来创建具有合适 ddl 的表。 要添加列,我应该在 prod 机器上手动添加它并更改 ddl。 还是只改变 ddl 就可以了?

谢谢

【问题讨论】:

  • 请发布您的 ddl 函数以及您要添加的列的详细信息

标签: sql postgresql


【解决方案1】:

据我所知,没有 create or replace table 语法这样的东西。这应该只适用于函数或视图。

使用ALTER TABLE Table1 ADD NewColumn {DATA_TYPE} 命令。

您提出问题的方式让我觉得您使用了 liquibase 之类的第三方数据库版本控制。如果是这种情况,请不要理会最初的创建 DDL,只需将其添加为单独的更改。如果您更改初始 ddl,它只会影响新数据库。

【讨论】:

  • 感谢您的回复,所以我将两者都做。首先在 prod 机器的 table1 上添加列,然后更改 ddl 以包含新列。这就是你的意思@Gabriel Durac 吗? postgresql.org/message-id/1046283935.1014.502.camel%40camel
  • 那么您使用的是 liquibase 还是其他数据库版本控制工具?
  • 我正在使用 postgresql
  • ALTER TABLE 是一个 DDL 命令,所以我有点困惑
  • 我的建议是在 prod 中运行 ALTER TABLE 并添加该列。还要在要添加列的任何其他环境上运行相同的 alter 命令。如果您使用代码运行自动数据库部署,则需要使用 ALTER 命令添加新的变更集。
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 2017-04-29
  • 2018-02-21
相关资源
最近更新 更多