首页 > 解决方案 > 如何获取sqlite中视图的ddl?

问题描述

我需要建立一个数据库的结构。我可以使用获取视图的名称databasemetadata.getTables(null,null,"%","VIEWS");

但是如何获取ddl,即视图的查询呢?

标签: javasqldatabasesqlitejdbc

解决方案


的结果集中返回了 10 列databasemetadata.getTables(),但没有一列包含视图的定义。

您可以做的是查询表并sqlite_master获取 2 列:它们对应于视图的名称及其定义:namesql

String select_views = "SELECT name, sql FROM sqlite_master WHERE type = 'view';";
Statement stmt = conn.createStatement(); // conn is the connection object
ResultSet rs = stmt.executeQuery(select_views);
while (rs.next()) {
   System.out.println(rs.getString("name") + "\t" + rs.getString("sql"));
}

推荐阅读