Emacs: how to create yasnippets for different RDBMs in sql-interactive-mode -
i using sql-interactive-mode connect 2 databases: mysql , sqlite. created yasnippets mysql in yasnippets/sql-interactive-mode
folder. example add column in mysql use following snippet:
# -*- mode: snippet -*- # name: add column # key: addcol # -- alter table $1 add column \`$2\` $3;
but sqlite uses different syntax. how can create different yasnippets different databases?
as explained here can add arbitrary emacs lisp code (enclosed in backquotes) yasnippet
snippets evaluated when expand. in sql-mode
, sql-interactive-mode
there variable called sql-product
can check determine type of database (mysql
, sqlite
, postgres
, etc.) working with.
that's need know. here example of how modify addcol
snippet:
# ... alter table $1 `(if (eq sql-product 'mysql) "add" "frob")` column \`$2\` $3;
this expand to
alter table $1 add column \`$2\` $3;
for mysql
and
alter table $1 frob column \`$2\` $3;
for other types of databases.
Comments
Post a Comment