読み取り専用モードの表に対して、許可されている操作はどれですか。
ALTER TABLE <表名> READ ONLYASELECT✓
BSELECT FOR UPDATE
CTRUNCATE TABLE
DALTER TABLE ADD✓
正解:A・D解説
ALTER TABLE <表名> READ ONLYで表を読み取り専用モードに変更すると、表データの変更操作は実行できなくなりますが、TRUNCATEを除く一部のDDLとSELECTは引き続き実行できます。
各選択肢の検討
- A(正解):
SELECTは読み取り操作なので許可されます。 - B(誤):
SELECT FOR UPDATEは行ロックを取得して更新する前提のSELECTなので、データ変更操作と同じ扱いになり許可されません。 - C(誤):
TRUNCATE TABLEはDDLですが、データを削除する操作なので読み取り専用モードでは禁止されます。 - D(正解):
ALTER TABLE ADD(列の追加など、表構造の変更)は許可されます。データ自体は変更しないためです。
読み取り専用モードでの操作可否まとめ
| 操作 | 可否 |
|---|---|
| SELECT | ○ |
| SELECT FOR UPDATE | × |
| INSERT / UPDATE / DELETE | × |
| TRUNCATE TABLE | × |
| ALTER TABLE ADD(列追加) | ○ |
| ALTER TABLE DROP COLUMN | ○ |
| DROP TABLE | ○ |
読み書きモードに戻す
ALTER TABLE <表名> READ WRITE;メンテナンス時や移行時に、誤った更新を防ぐ目的で使われる機能です。