【问题标题】:Best way to create smart autocompletion for SQL为 SQL 创建智能自动完成的最佳方法
【发布时间】:2014-09-24 11:22:40
【问题描述】:

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

如果我的输入字段为空(| - 当前车架位置),编辑器必须建议 SELECTINSERT >、更新删除

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

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

另外如何支持子查询?

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

AST 树在这里适用吗?无效的 SQL 语句怎么办?

【问题讨论】:

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


【解决方案1】:

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

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

这类似于 Google 在输入搜索字段时给出建议的方式

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多