このSQLへの指摘として正しいものは?
UPDATE users SET status = 'inactive';正答
- WHERE 句が無いので、全ユーザーが inactive に更新される
- SET の後の代入は括弧で囲まないと構文エラーになる
- 'inactive' はダブルクォートで囲む必要がある
- UPDATE の後に FROM を書かないと、更新するテーブルを指定できない
解説
UPDATE は WHERE で対象行を絞らないとテーブルの全行を書き換える。構文としては正しいためエラーにならず、実行して初めて気づくことが多い。レビューで最優先に指摘すべき種類の誤り。文字列はシングルクォートで正しく、ダブルクォートは識別子用なので 3 番目の指摘は誤り。UPDATE に FROM は不要。
参考: www.sqlite.org
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ