【SELECT INTO】【INSERT INTO SELECT】DB上にバックアップなテーブルを作成する

プログラム改修等でテーブルを更新する際、
いつでもテーブルを元の状態に戻せるように
バックアップを取得しておくことは大切です!

この記事では
・DB上にバックアップなテーブルを作成する
・バックアップなテーブルを使用して、テーブルを元の状態に戻す
手順を記載します!

バックアップなテーブルを作成は、
SELECT INTO」で実現できます!

バックアップなテーブルを使用してテーブルを元の状態に戻すのは、
INSERT INTO SELECT」で実現できます!

準備

以下のSQLを実行し、テーブルの作成/データの登録をします。

--テーブルの作成
CREATE TABLE employee(
	id      CHAR(5)      PRIMARY KEY,
	name    VARCHAR(10),
	sex     CHAR(2),
	section VARCHAR(10)
)

--テーブルへデータの登録
INSERT employee (id, name, sex, section) VALUES ('00001', '鈴木一郎', '男', '営業課')
INSERT employee (id, name, sex, section) VALUES ('00002', '田中二郎', '男', '総務課')
INSERT employee (id, name, sex, section) VALUES ('00003', '佐藤三郎', '男', '経理課')

DB上にバックアップなテーブルを作成

DB上にバックアップなテーブルを作成します。

下記のSQLを実行することで、
・バックアップなテーブルの作成(CREATE)
・バックアップなテーブルへデータ登録(INSERT)
が行われます。

作成(CREATE)も行われるため、すでに同名のバックアップなテーブルが
存在する場合は、エラーが発生します。

--DB上にバックアップなテーブルを作成
SELECT * INTO employee_backup
FROM employee

バックアップなテーブルの確認

DB上にバックアップなテーブルが作成されたことを確認します。

--バックアップなテーブルの確認
SELECT * FROM employee_backup

なお、主キー等の設定は引き継がれません。

バックアップなテーブルを使用して、テーブルを元の状態に戻す

対象のテーブルのレコードを全て削除後、バックアップなテーブルを使用して
テーブルを元の状態に戻します。

--全レコードを削除する
DELETE FROM employee

--バックアップなテーブルを使用して、テーブルを元の状態に戻す
INSERT INTO employee 
SELECT * FROM employee_backup

他の方と環境(テーブル)を共有している場合、
他の方の迷惑にならないよう、
いつでも環境を元の状態に戻せるようにしておきましょう!

・共有している環境を壊してしまった・・・
・しかも元の状態に戻せない・・・
という状況に陥ってしまうと、非常に気まずい思いをします。
気を付けましょう!

バックアップを取得したいテーブルのレコードが少ない場合は、
ローカルにバックアップを取得しても良いです。

その場合は以下の手順で
レコードをエクスポート(バックアップ)してください!

タイトルとURLをコピーしました