做了个数据库客户端,非常轻量级,欢迎大家尝试一下

2023-09-11 10:53:34 +08:00
 wyhaya

目前支持 PostgreSQL, MySQL, MSSQL 和 SQLite 数据库,还处于测试版。

欢迎大家尝试一下,也欢迎提点反馈建议。

https://dataflare.app

7588 次点击
所在节点    分享创造
81 条回复
fonlan
2023-09-11 15:06:41 +08:00
挺不错的,支持支持。
提个建议,对列表形式的显示还是不够直观,Array<1>这种样式看不到具体 list 的内容,不够直观。
wyhaya
2023-09-11 15:09:42 +08:00
@fonlan 确实是这样,我考虑的是由于单元格比较小,展示列表会很困难,现在只能通过双击显示编辑器来查看具体内容,这里还有待优化。(目前还不支持编辑 Array )
body007
2023-09-11 15:22:40 +08:00
体验不错,先 Mark ,期待后续更多功能。
xiaohundun
2023-09-11 16:38:22 +08:00
Mark ,等新增了修改表功能就迁移过来,另外有考虑做导入导出之类的辅助功能么
wyhaya
2023-09-11 16:55:07 +08:00
@xiaohundun 导入 目前还不支持,导出 目前只支持导出当前 页/当前查询结果,并且只支持 JSON ,包括导入/导出/备份之类的,我目前都还没考虑到,还缺失很多,以后看情况再加吧。
xiaohundun
2023-09-11 17:09:46 +08:00
@wyhaya 可能我没找到哈,能不能关闭 autofetch ,没有的话可以加个开关么
BigBai
2023-09-11 17:13:08 +08:00
作者您好,在 windows 10 LTSC 系统的沙盒(sandbox)环境下安装失败,报错信息`Failed to install WebView2! The app can't run withoutit. Try restarting the installer.`[报错截图]( )
JohnSwit
2023-09-11 17:15:46 +08:00
刚试用了一下,还是有一点问题:
1.写查询语句,有明显的卡顿,具体就是输入字母后没有立马出现,要等待几百毫秒,比如我输入字母 FROM ,我已经输入完毕了,然后软件才出现 FROM ,连续输入明显的卡顿感,可能我表比较多,有 1000 多个表。
2.WHERE 语句后,显示的字段不明显,比如我查询 A 表,WHERE 语句后一般来说就是加上 A 表的条件,但是我发现我想快速获取一些字段,输入后没有明显的匹配上。
3.无法搜索表,我想通过我的查询语句去看表结构,结果不行,然后我想看看有没有办法搜索想要的表,没看到搜索功能,我 1000 多个表,一个一个找不太可能。
JohnSwit
2023-09-11 17:20:48 +08:00
还有一点,能不能不要自动为我的表名或字段加上 '' 引号?改多几次,就会有很多引号,还得一个一个删掉,而且还会引起语句问题
faceair
2023-09-11 17:21:10 +08:00
尝试连接 https://doris.apache.org 的 mysql 端口报了一个错:error returned from database: 1105 (HY000): errCode = 2, detailMessage = Set statement does't support non-constant expr.

看是否方便兼容一下这种支持 mysql 协议,但又没那么标准的服务端
JohnSwit
2023-09-11 17:24:51 +08:00
还有一个致命问题,查询速度太慢,相同的表,10 万+数据,DataGrip 秒出结果,你这个客户端需要 20 秒+才能出结果,并且运行过程中整个程序都卡住,出结果后才恢复
wyhaya
2023-09-11 17:41:31 +08:00
@xiaohundun autofetch? 具体来说是啥意思,我有点不明白,是自动获取 表?

@BigBai 你好,由于这个 App 基于 Tauri ,所以它需要基于 Webview 运行,考虑到安装包体积问题,我没将 webview 嵌入到 App 内,Webview2 是在 win10 之后的某个版本之后才内置的,按理里说它应该提示你安装 Webview, 我找个 Windows 再检查检查吧,多谢你。

@JohnSwit
1. 你说的对,在你打开查询的时候,会获取数据库中 所有的 表/列,用于键入提示,应该是由于太多了导致的。
2. 这个我还没做,现在只有 表 / 列 / 关键字 / 函数 / 数据类型 的提示,且不区分语句位置。
3. 现在还没有搜索功能,不过已经在做了。

它会在 连接数据库时/打开查询时 获取 数据库中所有的表和列,并且当你执行查询(非获取数据) 的时候 还会刷新一次,用于更新键入提示的字段,考虑到你有这么多数据,我感觉很危险,为防止造成不必要的错误,建议现在不要再用它了,目前还不稳定,关于你上面所说的问题我都还没考虑到,我会尽快优化一下这些问题,再次感谢!
wyhaya
2023-09-11 17:45:23 +08:00
@JohnSwit > 还有一点,能不能不要自动为我的表名或字段加上 '' 引号?改多几次,就会有很多引号,还得一个一个删掉,而且还会引起语句问题

确实很烦人,加入待办事项!
wyhaya
2023-09-11 17:49:02 +08:00
@faceair 我用的是 Rust 这边的开源的 MySQL 驱动,如果它不支持的话,我估计这很难弄了,我有时间会检查检查。
faceair
2023-09-11 18:37:11 +08:00
@wyhaya 不是驱动问题,应该是创建完连接以后额外执行了一些 set 语句?这些语句可能不兼容
sub166
2023-09-11 20:21:20 +08:00
加上 redis ,干翻 datagrip !
russ44
2023-09-11 21:43:28 +08:00
Cool ,mark
happy32199
2023-09-11 22:52:52 +08:00
sql server 怎么显示库? 左侧只能选择 dbo 那些
jorneyr
2023-09-11 22:54:48 +08:00
简单的提几个问题吧 (其实我最近在搞 Web 版的 SQL 编辑器,下面的 | 表示光标):

1. 不支持列补全: "select * from tab t where |",输入 tab. 或者 t. 不会补全列提示。
2. 列乱补全: "select * from tab t where i|",这个时候会把所有表里 i 开头的列都补全提示,而不是只提示 from 的 tab 里的列。
3. 不知道跨 schema 补全提示: "select * from mysql.|",不会提示 mysql 下的表名。
4. 重复补全提示: 例如 id 或者 name 等,会在补全列表里重复出现很多次。
5. 出现不必要的补全提示: "INSERT INTO tab(|)",() 里应该只出现表 tab 的列,其他信息不应该在补全列表里。
jorneyr
2023-09-11 22:59:56 +08:00
下面是已经实现的功能列表,仅供参考:

```
| 功能 | 支持 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ |
| 数据缓存 | ✅ | Catalog > Schema > Table > Column 的数据都进行了缓存,快速提示,避免重复加载。 |
| 跨 schema 提示 | ✅ | `schema.` 自动提示指定 schema 下的表名。 |
| 表的别名 | ✅ | 可使用表名、表的别名触发列的补全提示。 |
| 创建表的别名 | ✅ | 补全表名的时候,在 `FROM, JOIN, DELETE FROM` 等可以定义别名的地方自动为表名创建别名。 |
| 表名补全 | ✅ | 表名补全支持 2 级: `table`, `schema.table` |
| 列名补全 | ✅ | 列名补全支持 2 级: `column`, `table.column` |
| 自动提示列 | ✅ | 在 `SELECT WHERE ORDER BY` 等子句里补全表名或表的别名时自动插入 `.` 并且自动弹出补全列表。 |
| 自动加载表的列 | ✅ | 例如在 `FROM, JOIN, INSERT INTO` 中补全表名时,表示这个表的列需要被使用,后台自动预先加载相关表的列,在使用列补全的时候数据大多已经准备好可直接提示。 |
| 嵌套子查询 | ✅ | 嵌套子查询中也会感知外部查询涉及到的表,可补全相关表和表的列。 |
| 特殊名字 | ✅ | Oracle 的表名列名支持特殊字符如 `$`,数字开头,补全时会自动使用 `"` 括起来。 |
| 静默加载 | ✅ | 自动从数据库加载需要补全的内容例如表的列,加载完成后会自动触发提示,加载中不强制提示。 |
| 局部加载 | ✅ | 如果要补全 3 个表的列,有 1 个表已经加载 2 个未加载,则会立即提示已加载表的列,另外 2 个表的列静默加载。 |
| 提示分类 | ✅ | 触发时未过滤的情况下根据 column, table, schema, function, keyword, operator 等分类显示。 |
| 提示说明 | ✅ | 提示项的右边会有说明,例如列的类型。 |
| 类型图标 | ✅ | 提示列表中不同的类型使用不同的图标,方便区分,schema, table, column, operator, keyword, function 等都使用不同的图标。 |
| 简单推导 | ✅ | 支持一些简单推导,例如 SELECT 后面需要的列只提示涉及的表名和列,<br />`FROM, JOIN` 后面只需要表名等,`INSERT INTO` 表名后面的括号里只会补全列,`VALUES()` 括号里不进行补全。 |
| SQL 模板插入 | ✅ | 例如补全 BETWEEN 时插入内容为 `(BETWEEN 光标 1 AND 光标 2)`,LIKE 插入 `LIKE '%光标%'` |
| 关键字、函数、运算符 | ✅ | 支持常用的关键字、函数、运算法提示。补全函数时会自动插入括号,例如 `MAX()`。补全函数时补全列表里只有预定义的函数。 |
| 模糊匹配 | ✅ | 提示过滤使用模糊查询,不需要严格匹配。 |
| 快捷键 | ✅ | 快捷键 <kbd>CTRL+;</kbd> 触发补全提示。 |
| 临时表 | ❌ | 不支持临时表的列补全。 |
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/972660

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX