MySQLなどのSQLが書かれたファイルを編集する

  • 9
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

*.sqlのようなファイル名のファイルを開いたとき、特に設定などしてなければ SQL[ansi] モードになる。

現実にはSQLにはOracle, PostgreSQL, SQLite、MySQLなど複数の実装があり、ansiのままではそれぞれ固有のデータ型や句などが適切に色付け表示されない。

そんなときにはM-x sql-set-productでSQL製品(実装)を指定できる。

デフォルトのSQL製品をMySQLにしたければ、init.elに次のように書いておく。

init.el
(custom-set-variables
 '(sql-product 'mysql))

本稿執筆時のsql.el 3.5で指定可能なSQL製品は以下の通り。

  • ansi
  • db2
  • informix
  • ingres
  • interbase
  • linter
  • ms
  • mysql
  • oracle
  • postgres
  • solid
  • sqlite
  • sybase
  • vertica

最新版の状態が知りたいときは https://github.com/emacs-mirror/emacs/blob/master/lisp/progmodes/sql.el などで各自チェックしてくだされ。

追記

上記リンクは環境によっては結構重いので、最新のではなく利用中のEmacsに付属するsql.elで良ければM-x find-variable sql-product-alistで探すと良いですよ。

追記その2

余分なコメントを含めることに支障がなければ、ファイル末尾に次のようなコメントを書くことでEmacsにSQL製品を指示することもできます。

-- Local Variables:
-- sql-product: ms
-- End:

この仕組みに関しては GNU Emacs Manual: Specifying File Variables を参照してください。