parent
0792205464
commit
d8d72f354a
@ -0,0 +1,41 @@
|
||||
package com.dsideal.FengHuang.Util;
|
||||
|
||||
import com.jfinal.kit.Kv;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
import com.jfinal.plugin.activerecord.SqlPara;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PgSqlUtil {
|
||||
protected static String getPkColumnName(String table_name) {
|
||||
Kv kv = Kv.by("table_name", table_name);
|
||||
SqlPara sp = Db.getSqlPara("PgSql.getSinglePk", kv);
|
||||
List<Record> list = Db.find(sp);
|
||||
if (list.size() == 0) return null;
|
||||
return Db.find(sp).get(0).getStr("colname");
|
||||
}
|
||||
|
||||
protected static String getSeqNameByTableName(String table_name) {
|
||||
String pkName = getPkColumnName(table_name);
|
||||
if (!pkName.equals(null)) {
|
||||
String sql = "SELECT pg_get_serial_sequence(?,?) as sq_name";
|
||||
String sqName = Db.findFirst(sql, table_name, pkName).getStr("sq_name");
|
||||
if (StrKit.isBlank(sqName)) return null;
|
||||
return sqName.replace("public.", "");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void Truncate(String table_name) {
|
||||
String sql = "truncate table " + table_name;
|
||||
Db.update(sql);
|
||||
|
||||
String seq_name = getSeqNameByTableName(table_name);
|
||||
if (!StrKit.isBlank(seq_name)) {
|
||||
sql = "SELECT setval('" + seq_name + "', 1, false);";
|
||||
Db.find(sql);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
#namespace("PgSql")
|
||||
#sql("getSinglePk")
|
||||
select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from
|
||||
pg_constraint inner join pg_class
|
||||
on pg_constraint.conrelid = pg_class.oid
|
||||
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
|
||||
and pg_attribute.attnum = pg_constraint.conkey[1]
|
||||
inner join pg_type on pg_type.oid = pg_attribute.atttypid
|
||||
where pg_class.relname = #para(table_name)
|
||||
and pg_constraint.contype='p'
|
||||
#end
|
||||
#end
|
@ -0,0 +1,12 @@
|
||||
#namespace("PgSql")
|
||||
#sql("getSinglePk")
|
||||
select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from
|
||||
pg_constraint inner join pg_class
|
||||
on pg_constraint.conrelid = pg_class.oid
|
||||
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
|
||||
and pg_attribute.attnum = pg_constraint.conkey[1]
|
||||
inner join pg_type on pg_type.oid = pg_attribute.atttypid
|
||||
where pg_class.relname = #para(table_name)
|
||||
and pg_constraint.contype='p'
|
||||
#end
|
||||
#end
|
Loading…
Reference in new issue