我想把我的iPhone应用程序迁移到一个新的数据库版本。由于我没有保存一些版本,我需要检查是否存在某些列名。
这个Stackoverflow条目建议执行选择
SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
并解析结果。
这是常见的方式吗?选择呢?
我想把我的iPhone应用程序迁移到一个新的数据库版本。由于我没有保存一些版本,我需要检查是否存在某些列名。
这个Stackoverflow条目建议执行选择
SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
并解析结果。
这是常见的方式吗?选择呢?
当前回答
如果你有sqlite数据库,使用sqlite3命令行程序和这些命令:
列出数据库中所有的表。
.tables
要显示给定表名的模式:
.schema tablename
其他回答
PRAGMA table_info(table_name);
会给你一个列有所有列名的列表。
function getDetails(){
var data = [];
dBase.executeSql("PRAGMA table_info('table_name') ", [], function(rsp){
if(rsp.rows.length > 0){
for(var i=0; i<rsp.rows.length; i++){
var o = {
name: rsp.rows.item(i).name,
type: rsp.rows.item(i).type
}
data.push(o);
}
}
alert(rsp.rows.item(0).name);
},function(error){
alert(JSON.stringify(error));
});
}
如果你有sqlite数据库,使用sqlite3命令行程序和这些命令:
列出数据库中所有的表。
.tables
要显示给定表名的模式:
.schema tablename
当你运行sqlite3命令行时,输入:
sqlite3 -header
也会给你想要的结果吗
如果您正在搜索任何特定的列,您可以使用Like语句
ex:
SELECT * FROM sqlite_master where sql like('%LAST%')