为SQL创建智能自动完成的最佳方法

问题描述:

我想创建一个具有智能自动完成的在线SQL编辑器。什么是最好的办法呢?为SQL创建智能自动完成的最佳方法

如果我有空的输入字段(| - 当前托架位置),编辑器必须表明选择INSERTUPDATEDELETE

如果我有这样的类型:SELECT * FROM |,编辑必须建议可用表的列表。但是,如果我返回到SELECT *,| FROM people,编辑者必须提示表的字段列表。

如果我有这样的类型:SELECT p.name,a。| FROM people p LEFT JOIN address a ON p.address_id = a.id,编辑者必须建议列表字段地址表。

另外如何支持子查询?

我想确定什么建议编辑必须知道现在在哪里马车?在哪个SQL令牌。

AST树适用于此吗?如何处理无效的SQL语句?

+0

您将执行SQL的语法并使用它。这里是一个开始的地方:http://www.savage.net.au/SQL/sql-2003-2.bnf.html。 – 2014-09-24 11:36:41

+0

你能描述更多细节吗? – Medvedev 2014-09-24 12:01:19

你需要实现一个后缀树与SQL语法

当用户类型的话,遍历后缀树,给从匹配节点自动完成的话

这与所有的孩子Google在输入搜索字段时如何给出建议