#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.