关于postgresql、greenplum在代码层⾯执⾏sql命令前⾃主指
定schema的⽅法
抖音vbs表白代码⽬前,由于接触了postgresql、greenplum和sqlserver这三种有schema的数据库,对于这个schema,我觉得最⼤的区别就在于中间多了⼀层来区分的,想想mysql的数据库层次,再看下边的postgresql的数据库层次图,你就最基本了解了:mysqlschema作用>php源码配置ssl支持
可以看到,在表的上⾯多了⼀层schema,所以我们在postgresql写表的时候,可以这样指定:st_fo,⽽不像mysql 那样直接数据库.表名(mysql也有schema,基本跟数据库是⼀个概
念;oracle也有schema,⼀个⽤户只有⼀个schema)。
回到主题,在例如⽤jdbc执⾏sql命令前指定schema执⾏:
① postgresql的官⽅驱动包中,对Connection类的setSchema()⽅法做了实现,所以对于postgresql,可以这样做:
// connection为java.sql.Connection对象
connection.setSchema(schemaCode);
② 由于greenplum驱动包没实现setschema⽅法,所以我们只能⾃⼰执⾏sql来指定,以下⽅法使⽤postgresql和greenplum:
// schemaCode为需要指定的schema
private static void setPgSchema(Connection connection, String schemaCode) throws SQLException {
Statement statement = null;
try {
statement = ateStatement();
String sbSql;
if (Utils.isEmpty(schemaCode)) {
sbSql = "SET SESSION search_path TO DEFAULT";
}
qt和pyqt区别else {
linux打开vim编辑器sbSql = String.format("SET SESSION search_path TO '%s'", schemaCode);
}
}
finally {
statement.close();
}
}
next to的意思③ 对于sqlserver没辙,我了sqlserver的官⽅驱动包从第4个版本到第8个版本,没⼀个有实现setschema⽅法的,⽽对于我之前⾃⼰的需求,不适合⼀些⽐较极端的⽅法,所以也就不了了之了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论