Будущая проверка таблицы SQL?

0

Я рассматриваю возможность создания базы данных MySQL для некритического критического проекта. Я думал о сценарии, когда, если мне пришлось вставить еще один столбец в таблицу, как я могу достичь этого, не ставя под угрозу целостность данных уже существующих столбцов, а также указать значения по умолчанию для этих дополнительных столбцов? Я бы хотел ответить как на SQL, так и на Java Persistence API (JPA).

Кроме того, я также хотел бы знать, как добавить таблицу в ячейку родительской таблицы.

Теги:
database
jpa

4 ответа

0
Лучший ответ

Добавление столбца не должно влиять на ранее существовавшие данные, если только вы не делаете то, что связывает столбцы, такие как создание индекса с несколькими столбцами, уникальный ключ или что-то подобное. Но если между новым и старым столбцами нет таких связей, добавьте столько столбцов, сколько захотите. Сходите с ума!

4

Это легко:

ALTER TABLE mytable
ADD COLUMN newcolumn VARCHAR(20)

Вы можете присвоить ему значение по умолчанию, вы можете использовать предложение AFTER xyz, чтобы добавить его после столбца "xyz" (или оставить его, чтобы просто добавить столбец в конец).

В этом нет ничего особенного, любая СУБД позволит вам добавлять (и удалять) столбцы в базу данных "на лету".

  • 0
    А как насчет кода Hibernate / JPA?
1

Одна вещь, которая может повлиять на ваш код, - это код, который ссылается на столбец позиции вместо столбца ключевого слова. Если вы ожидаете, что данный firstname находится в позиции 5, вместо того, чтобы ссылаться на него с ключевым словом firstname, вы можете добавить новый столбец в конце своей таблицы.

1

Как указано, вы можете просто добавить столбец в таблицу, используя синтаксис вашей РСУБД по выбору.

Если вы не хотите изменять свой код в этот момент, все, что вы можете сделать, это обеспечить разумное значение по умолчанию (значение null также может быть разумным по умолчанию). Таким образом, ваше приложение может вставлять строки без каких-либо проблем. Позднее вы можете сопоставить свой столбец и начать использовать его в своем приложении.

Справедливости ради, довольно часто выпускать обновление dbschema вместе с новой версией приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню