DDLによる表とその関係の管理複数選択25

読み取り専用モードの表に対して、許可されている操作はどれですか。

ALTER TABLE <表名> READ ONLY

ASELECT
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;

メンテナンス時や移行時に、誤った更新を防ぐ目的で使われる機能です。