我正在尝试查找有关MySQL,PostgreSQL,SQLite等开源数据库的正确RDBMS SQL queries的信息。他们是否有任何预先组装的列表,或者我只需要梳理每个数据库引擎的文档(,在某些情况下猜测正确的实现? ALTER TABLE
vs {{1 }})
例如,到目前为止,我有MySQL的这个(部分)列表:
CREATE INDEX
答案 0 :(得分:4)
我从未见过类似的东西,但你可以获得ANSI SQL的EBNF
答案 1 :(得分:0)
您可以查看一些ActiveRecord实现的线索。他们尝试为查询实现commom层。大多数框架为SQL引擎提供某种abstration。 Win可移植性丢失了每个数据库供应商的特殊实现细节。
如果您有时间,可以查看每个数据库文档并创建解析器。 对于Postgresql数据库,您可以在手册中检查命令结构:http://www.postgresql.org/docs/9.0/static/sql-commands.html。
Postgresql的一个小例子在表上添加了模式名称。使用公共模式作为默认模式。
CREATE TABLE "%s"."%s" (...);
答案 2 :(得分:0)
我想到的一个肮脏技巧是使用像Hibernate这样的O / R引擎对此进行建模。开发带注释的类或.hbm.xml文件,然后只需打开 hbm2ddl = auto并对您的数据库列表运行它。使用 show_sql 属性记录hibernate正在生成的所有DML / DDL ......
我假设像hibernate这样的O / R框架已经看到了世界,并且可以处理已建立的RDBMS平台的所有细微差别。但是我不确定hibernate是否会尝试生成尽可能通用的DDL scriptlet,或者尽可能生成方言的本机。
希望这会有所帮助;)