добавить столбец в существующую таблицу postgres

#sql #postgresql

#sql #postgresql

Вопрос:

У меня есть таблица1, созданная в среде prod. Я должен добавить столбец в существующую таблицу1. Я использую функцию create of replace для создания таблицы с подходящим ddl. Чтобы добавить столбец, я должен добавить его вручную на компьютере prod и изменить ddl. Или изменение только ddl сделает это?

Спасибо

Комментарии:

1. Пожалуйста, опубликуйте свою функцию ddl, о которой идет речь, с подробными сведениями о столбцах, которые вы хотите добавить

Ответ №1:

Насколько я знаю, не существует такого понятия, как create or replace table синтаксис. это должно работать только для функций или представлений.

Используйте ALTER TABLE Table1 ADD NewColumn {DATA_TYPE} команду.

То, как вы сформулировали свой вопрос, заставляет меня думать, что вы используете сторонний контроль версий базы данных, такой как liquibase. Если это так, оставьте исходный файл create DDL в покое и просто добавьте его как отдельное изменение. Если вы измените исходный ddl, это повлияет только на новые базы данных.

Комментарии:

1. Спасибо за ваш ответ, поэтому я сделаю оба. сначала добавьте столбец в table1 компьютера prod, затем измените ddl, чтобы включить новый столбец. Это то, что ты имеешь в виду @Gabriel Durac? postgresql.org/message-id/1046283935.1014.502.camel@camel

2. Итак, вы используете liquibase или какой-либо другой инструмент управления версиями БД?

3. я использую postgresql

4. ALTER TABLE это команда DDL, поэтому я немного смущен

5. я предлагаю просто запустить ALTER TABLE в prod, и это добавит столбец. Также запустите ту же команду alter в любых других средах, в которые вы хотите добавить столбец. Если вы запускаете автоматическое развертывание базы данных с использованием кода, то вам необходимо добавить новый набор изменений с помощью команды ALTER.