6.1 データベースの構造の変更

そして最後に、データベースの操作で最も楽しい部分は、データベースを変更することです。これは非常に単純なことだと思われる方のために、この件に関する逸話を次に示します。


The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!

状況はデータベースでもまったく同じです。別表のデータの一部を取り出したいのですが?はい、必要なものは次のとおりです。

  • 新しいテーブルを作成する
  • データをこの新しいテーブルにコピーします
  • 古いテーブルから列を削除する
  • 古いテーブルを参照したすべての SQL クエリを変更します。
  • 新しいテーブルにアクセスする SQL クエリを追加します
  • 古い方法でテーブルを操作していた Java コードを変更する
  • テーブル構造が一致しなくなったため、バックアップおよび復元スクリプトを変更します。
  • 開発者用のテストデータがある場合は、それも変更する必要があります

実際にはさらに悪いですが、

新しいデータベース構造:

  • まず、開発者のマシン上のテーブル構造を変更します。
  • そうすれば、そのような構造の方が本当に優れていると確信するでしょう
  • 新しいデータベース構造を承認する

移行スクリプト:

  • 実際のデータベース上のテーブルデータなどを変更するスクリプトを作成します。
  • 古いデータベース構造を持つマシン上でこれらのスクリプトを実行し、どのように変化するかを確認してください。
  • 新しい基地の重要な場所をすべて確認する

セール中のアップデート

  • 本番データベースを停止する
  • 完全なバックアップを作成する
  • スクリプトの実行
  • 通常、市場にはたくさんのスクリプトがあるため、これらのスクリプトは何時間も動作する可能性があります

prod を起動し、すべてをロールバックする必要がないことを望みます。

6.2 ALTER TABLE 文

一方、テーブル構造を変更するスクリプト自体は非常にシンプルです。ある意味、これはテーブル作成スクリプトに似ています。テーブル変更リクエストの全体像:

ALTER TABLE table
team 1,
team 2,
Team N

コマンドは大きく異なりますが、次の 3 つの主要なグループに区別できます。

  • ADD- テーブルに何かを追加します
  • MODIFY- テーブル内の何かを変更します
  • DROP- テーブル内の何かを削除します

私が何かを言うとき、それはデータについてではなく、テーブルの構造についてです。

たとえば、テーブルに新しい列を追加すると、次のクエリを実行する必要があります。

ALTER TABLE table
	ADD COLUMN Name type

email列を従業員テーブルに追加するクエリを作成してみましょう。

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

次に、電子メール文字列の長さを 10 から 100 に変更しましょう。このためには、新しいスクリプトが必要です。

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

列のタイプではなく、列の一部の属性を変更したい場合は、コマンドが ALTER COLUM必要です。デフォルトの電子メール値を設定しましょう。

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

最後に、列が必要ない場合は削除できます。

ALTER TABLE employee
	DROP COLUMN email 

6.3 主キーの追加と削除

さらに役立つ例もいくつかあります。

id列を主キーとして宣言するのを忘れたとします。次の方法でいつでも個別に実行できますALTER TABLE

ALTER TABLE employee
	ADD PRIMARY KEY (email);

削除はさらに簡単です。

ALTER TABLE employee
	DELETE PRIMARY KEY;