求助:ReportLite 连接数据库后表名显示不全
我有一个数据库连接后的疑问,恳请大佬们得空时帮忙看看,如下截图所示,数据库是成功连接的,但在 ReportLite 中选择 SQL 检索后,数据库里的可选表名显示不全,只显示出一张在视图里的表:
我用单元格函数 query 执行 sql 语句显示所有表名,可以得到全部表名:
上述 11 张表在数据库里的结构如下所示,10 张在 main 里,1 张在 VIEW 里:
只有在 VIEW 里的 revenue 表在 ReportLite 里成功显示出来了,其余 10 张表的表名没得选,但用 sql 语句能检索到数据。如果把数据源切换到 demo,那所有的可选表名都能显示出来。
这个问题是不是数据库 DuckDB 本身的问题?我搞半天搞不出名堂来了,恳请大佬帮忙看看🙏
常见数据库的表类型是 "TABLE",还有其他类型比如视图 "VIEW", 系统表 "SYSTEM TABLE" 等。
但是 DuckDB 的表类型是 "BASE TABLE",所以导致了列出表失败。
后面会支持列出 "BASE TABLE",需要等下次更新。这个问题只影响显示不影响执行 SQL。
谢谢大佬解惑🙏👍
执行 SQL 没有问题,所有表的数据都能检索到。
添加数据集时可以在 "语法" 选项卡中直接写 SQL 语句得到,选项卡 "数据表" 中的 "可选表名" 是一个友好的界面操作,才弄明白😄
还有一个小问题,请大佬顺便看看😂
直接在 "语法" 处用标准的 "select * from 表" 可以在右侧 "选中表名" 处显示这个表名,如下所示:
但 DuckDB 里可以省略 "select *" 或者把 "select *" 置后,比如,“from customer” 或者 “from customer select *”,
这两种写法不影响获取数据集,但在选中表名处就不会显示这个表名,如下:
SQL 编辑器对于比较通用的 SQL 可以进行编辑和解析。
比较特殊的或者很复杂的 SQL,建议直接在 "语法" 编辑框中输入,或者通过数据库的自带工具生成 SQL 后复制到 "语法" 编辑框中。
这种非标 SQL 没必要折腾了,这不能把 SPL 的 IDE 做成专为 duckdb 服务的,应该是它向标准靠,而不是别人向它靠。
何况,让 SQL 更好用本来也不是 SPL 的目标,它好不好用,其实关我屁事。
😂 谢谢老贼。确实如此,外国佬越来越不靠谱,干他丫的。
我也不想折腾 SQL,数据集的获取方式有那么多种,SQL 检索绝对不是我的首选。
只是看到有 SQL 选项,好奇是怎么玩的,仅此而已。