*.sql
のようなファイル名のファイルを開いたとき、特に設定などしてなければ SQL[ansi]
モードになる。
現実にはSQLにはOracle, PostgreSQL, SQLite、MySQLなど複数の実装があり、ansiのままではそれぞれ固有のデータ型や句などが適切に色付け表示されない。
そんなときにはM-x sql-set-product
でSQL製品(実装)を指定できる。
デフォルトのSQL製品をMySQLにしたければ、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 を参照してください。