是否有一个纯sqlite请求在数据库中查找字符串?
通过一些 shell,我可以从表中提取模式:
for i in *sqlite;
do sqlite3 $i ".tables"
| grep -Eoh "[^ ]+"
| while read t; do
echo -n "$i:$t ";
sqlite3 $i '.schema "'"$t"'"';
done;
echo;
done
然后我可以找到哪一列的类型是TEXT,并提出请求。
但是有没有一种纯 SQL 方法可以在终端中执行此操作?
TLDR;将 sqlite 数据库转储到名为
dump.sql
的文件
sqlite3 some.db .dump > dump.sql
SQLite 被设计为嵌入式数据库,因此仅具有极其基本的编程功能(它有触发器,但没有像
if
或循环之类的控制逻辑)。
因此不可能在 SQL 中执行任何动态操作 – PRAGMA table_info
的结果不能直接在 SQL 查询中使用。
在数据库中到处搜索的一种非常快速但肮脏的方法是用
.dump
显示所有内容,然后只是 grep
。然而,这实际上并不快,因为在 SQL 中搜索索引列会更快。