gpt4 book ai didi

database - 在空表中查找 SQLite 列名

转载 作者:IT王子 更新时间:2023-10-29 06:17:13 25 4
gpt4 key购买 nike

我正在编写一个“模式文档”工具,用于生成对数据库中的表和关系的描述。我目前正在调整它以与 SQLite 一起使用。

我通过对 sqlite_master 表的查询设法提取了 SQLite 数据库中所有表的名称。对于每个表名,我然后触发一个简单的

select * from <table name>

查询,然后使用 sqlite3_column_count()sqlite3_column_name() API 收集列名,我进一步将其提供给 sqlite3_table_column_metadata() 获取更多信息。很简单,对吧?

问题是它只适用于非空表。也就是说,只有当 sqlite_step() 返回了 SQLITE_ROW 时,sqlite_column_*() API 才有效,对于空表则不然。

那么问题来了,如何发现空表的列名?或者,更一般地说,是否有更好的方法在 SQLite 中获取此类模式信息?

我觉得一定有另一个隐藏的 sqlite_xxx 表潜伏在某处包含此信息,但到目前为止还没有找到它。

最佳答案

sqlite> .header on
sqlite> .mode column
sqlite> create table ABC(A TEXT, B VARCHAR);
sqlite> pragma table_info(ABC);
cid name type notnull dflt_value pk
---------- ---------- ---------- ---------- ---------- ----------
0 A TEXT 0 0
1 B VARCHAR 0 0

关于database - 在空表中查找 SQLite 列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com