1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLって直打ちするの?SQLファイルって何

1
Posted at

SQLファイルとは

  • 拡張子 .sql を付けたテキストファイルで、
    SQL(Structured Query Language)の文をそのまま書き込んだもの。
    例)create_tables.sql / import_data.sql

主な用途

用途 中身の例 いつ使う?
スキーマ定義 CREATE TABLE users (...); テーブルやインデックスを一括作成したいとき
初期データ投入 INSERT INTO prefectures VALUES ...; マスターデータを配布・再現するとき
データ移行/パッチ UPDATE orders SET status='paid' WHERE ...; 本番データを修正・移行するとき
バックアップ/ダンプ -- Dumped by pg_dump(大量の INSERT 文) データベース全体をファイルに保存したいとき
テスト用シード 開発・CIで使う少量の INSERT 自動テストで同じ状態を再現

実行方法

CLI で直接流す

# PostgreSQL
psql -h db -U user -d mydb -f create_tables.sql

メリットと注意点

メリット

  1. 再現性が高い:同じファイルを流せば同じ DB 状態になる
  2. レビューしやすい:Git で差分管理
  3. ツール互換:ほぼすべての RDBMS が .sql をインポート可能

注意点

  • ロールバック:DDL/DML を混ぜる場合はトランザクションで包む or 分割する
  • ロック・性能:巨大ダンプをそのまま流すとテーブルロックや I/O 負荷が大きい
  • 環境差分:ローカル・本番で拡張や権限が違うとエラーになる

※DDLはテーブルの作成や削除など構造変更、DMLはデータ取得、追加、削除などのデータ変更

DDLについてはLaravelのマイグレーションファイルと同じだ。
BEGINとCOMMIT入れておかないと怖いことになることは忘れていないぞ。。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?