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