【发布时间】:2014-09-24 11:22:40
【问题描述】:
我想创建一个具有智能自动完成功能的在线 SQL 编辑器。最好的方法是什么?
如果我的输入字段为空(| - 当前车架位置),编辑器必须建议 SELECT、INSERT >、更新、删除。
如果我有这样的类型: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 语法并使用它。这是一个开始的地方:savage.net.au/SQL/sql-2003-2.bnf.html.
-
你能描述更多细节吗?
标签: sql algorithm autocomplete ide abstract-syntax-tree