SQLLite数据库获取一个表有多少列的语句是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLLite数据库获取一个表有多少列的语句是啥?相关的知识,希望对你有一定的参考价值。

查询table,type 段是'table',name段是table的名字, so:
select name from sqlite_master where type='table' order by name;
查询indices,type段是'index', name 是index的名字,tbl_name是index所拥有的table的名字通过以下语句可查询出某个表的所有字段信息
PRAGMA table_info([tablename])
如果在程序中你可以通过 sqlite_master 表得到所有表的信息。
参考技术A SELECT COUNT(*) FROM table_name
就这么简单。追问

你这个语句求出来的是多少行吧。
不是查询多少行?
是查询多少列

追答

哦,哈哈,看错了,sorry。非得用sqlite语句求列数吗?如果是用程序的话那就非常简单了。

追问

我是android菜鸟,麻烦您指定一下,给个demo呗

追答Cursor ti = db.rawQuery("PRAGMA table_info(tableName)", null);
int count = 0;
if ( ti.moveToFirst() ) 
    do 
        count++;
     while (ti.moveToNext());

System.out.println(count);

本回答被提问者采纳

插入标识列的 BCP 格式是啥

【中文标题】插入标识列的 BCP 格式是啥【英文标题】:What will be BCP format for inserting a identity column插入标识列的 BCP 格式是什么 【发布时间】:2011-03-11 18:49:07 【问题描述】:

我在尝试使用 BCP 将数据插入表时遇到问题。该表有一个标识列。我正在从文本文件中获取输入。如果有什么好的解决方案,请告诉我。

问候, 茶岩

【问题讨论】:

【参考方案1】:

你有两个选择,真的:

插入 IDENTITY 列的值,让 SQL Server 为您处理

如果您不能或不想这样做,则需要在该表上打开 IDENTITY_INSERT,然后插入值,然后再次将其关闭:

SET IDENTITY_INSERT (table name) ON
-- do your bcp import here
SET IDENTITY_INSERT (table name) OFF

使用此设置,您可以将自己的值插入 IDENTITY 列。

如果您这样做,您可能还需要在插入后重新设置标识列的种子,以避免您的 IDENTITY 中出现任何潜在的重复:

DBCC CHECKIDENT('table name', RESEED)

【讨论】:

【参考方案2】:

我需要做同样的事情,我的同事指出您可以使用 BCP 上的 -E 开关来执行此操作。

来自文档...

"-E 指定将导入数据文件中的一个或多个标识值用于标识列。如果未给出-E,则忽略正在导入的数据文件中该列的标识值。"

工作愉快,谢谢 Jan!

【讨论】:

【参考方案3】:

创建一个不包括标识列的视图也很有用,不需要格式文件:

bcp mydb.dbo.myview in file.txt -S(local) -T -e err.log -c

【讨论】:

以上是关于SQLLite数据库获取一个表有多少列的语句是啥?的主要内容,如果未能解决你的问题,请参考以下文章

sqllite根据条件一次查询多条数据

java中一个对象的属性为String 在mysql中对应text列 表有该列数据,可是读取该列的时候为null,求解决方法

mysql查询一个数据库中有特定前缀的表有多少个

SQL 执行计划

我的表有多个列,我想获取每列中的值计数并在 postgresql 中分别显示每列的计数值

获取特定表中特定列的数据类型的 Presto 查询是啥?