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

时间:2014-09-24 11:22:40

标签: sql algorithm autocomplete ide abstract-syntax-tree

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

如果我有空输入字段( | - 当前支架位置),编辑器必须建议 SELECT INSERT 更新删除

如果我有类型: SELECT * FROM | ,编辑器必须建议可用表的列表。但是如果我回到 SELECT *,|从人,编辑必须建议表的字段列表。

如果我输入了这个: SELECT p.name,a。|来自人员p LEFT JOIN地址a ON p.address_id = a.id ,编辑必须建议地址表的字段列表。

还有如何支持子查询?

我认为要确定建议编辑必须知道现在哪里有马车?在哪个SQL令牌。

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

1 个答案:

答案 0 :(得分:0)

您需要使用SQL语法

实现后缀树

当用户键入单词时,遍历后缀树并将匹配节点中的所有子节点作为自动完成单词

这类似于Google在输入搜索字段时提供的建议