私は、ミッションクリティカルでないプロジェクト用にMySQLデータベースを作成することを検討しています。テーブルに別の列を挿入する必要が生じた場合、既存の列のデータの整合性を損なうことなく、これらの追加の列の既定値を指定することなく、どのようにして達成することができますか?私は、SQLとJava Persistence API(JPA)の両方の回答を希望します。将来のSQLテーブルの校正?
また、親テーブルのセル内にテーブルを追加する方法も知りたいと思います。
私は、ミッションクリティカルでないプロジェクト用にMySQLデータベースを作成することを検討しています。テーブルに別の列を挿入する必要が生じた場合、既存の列のデータの整合性を損なうことなく、これらの追加の列の既定値を指定することなく、どのようにして達成することができますか?私は、SQLとJava Persistence API(JPA)の両方の回答を希望します。将来のSQLテーブルの校正?
また、親テーブルのセル内にテーブルを追加する方法も知りたいと思います。
列の追加は、このようなマルチカラムインデックス、ユニークキー、または類似した何かを作成するように、既存のデータには影響を与えません。しかし、新しい列&の間にこのようなリンケージがない場合は、好きなだけ多くの列を追加してください。夢中になる!コードは、列の代わりのキーワード列を配置するために参照している場合、あなたのコードに影響を持っているかもしれ
それは簡単です:あなたはそれをデフォルト値を与えることができます
ALTER TABLE mytable
ADD COLUMN newcolumn VARCHAR(20)
、あなただけの最後に列を追加するために「XYZ」欄(後にそれを追加したり、それを残すためにAFTER xyz
句を使用することができます)。
これは特別なことではありません.RDBMSを使用すると、オンザフライでデータベースに列を追加(および削除)できます。
前述のように、選択したRDBMSの構文を使用して、単に表に列を追加できます。
あなたはその時点で、あなたのコードを変更したくない場合は、あなたが行うことができ、すべては賢明なデフォルト(nullでは、あまりにも、賢明なデフォルトの可能性)を提供しています。そうすれば、アプリケーションは問題なく行を挿入できます。後で列をマップし、アプリケーションで使用することができます。
公正であるために、dbschemaアップデートを新しいバージョンのアプリケーションと共にリリースするのはかなり一般的です。あなたが列をリンクする何かをしない限り、
一つのことです。 firstname
が5の位置にあると予想される場合は、キーワードfirstname
で参照するのではなく、テーブルの最後に新しい列を追加するとよいでしょう。
そして、Hibernate/JPAコードはどうですか? – Catfish