|
|
package main
|
|
|
|
|
|
import (
|
|
|
"dsSupport/Utils/CommonUtil"
|
|
|
"dsSupport/Utils/DbUtil"
|
|
|
"dsSupport/Utils/PgUtil"
|
|
|
"fmt"
|
|
|
)
|
|
|
|
|
|
var db = DbUtil.Engine
|
|
|
var pgDb = PgUtil.Engine
|
|
|
|
|
|
func main() {
|
|
|
//1、读取每一张需要创建的表
|
|
|
sql := "select * from t_dw_table"
|
|
|
list, _ := db.SQL(sql).Query().List()
|
|
|
|
|
|
for i := range list {
|
|
|
tableId := list[i]["table_id"].(int64)
|
|
|
tableName := list[i]["table_name"].(string)
|
|
|
createTableSql := `DROP TABLE IF EXISTS "public"."` + tableName + `";` + "\r\n"
|
|
|
pgDb.SQL(createTableSql).Execute()
|
|
|
|
|
|
createTableSql = `CREATE TABLE "public"."` + tableName + `" (` + "\r\n"
|
|
|
//2、根据表名,获取相应的创建表的信息
|
|
|
sql = `select * from t_dw_table_field where table_id=?`
|
|
|
list2, _ := db.SQL(sql, tableId).Query().List()
|
|
|
for i2 := range list2 {
|
|
|
dataType := list2[i2]["data_type"].(string)
|
|
|
fieldLength := list2[i2]["field_length"].(int64)
|
|
|
isNull := list2[i2]["is_null"].(int64)
|
|
|
fieldName := list2[i2]["field_name"].(string)
|
|
|
var c = ""
|
|
|
if dataType == "int" {
|
|
|
c = "int" + CommonUtil.ConvertInt64ToString(fieldLength)
|
|
|
} else {
|
|
|
c = dataType + "(" + CommonUtil.ConvertInt64ToString(fieldLength) + ") " + ` COLLATE "pg_catalog"."default"`
|
|
|
}
|
|
|
if isNull == 0 {
|
|
|
c += " NOT NULL,"
|
|
|
} else {
|
|
|
c += ","
|
|
|
}
|
|
|
createTableSql += `"` + fieldName + `" ` + c + "\r\n"
|
|
|
}
|
|
|
createTableSql=createTableSql[0:len(createTableSql)-3]
|
|
|
createTableSql += `);` + "\r\n"
|
|
|
_, err := pgDb.SQL(createTableSql).Execute()
|
|
|
if err != nil {
|
|
|
fmt.Println(createTableSql)
|
|
|
panic(err.Error())
|
|
|
}
|
|
|
//主键有哪些
|
|
|
var pks = ""
|
|
|
for i2 := range list2 {
|
|
|
fieldName := list2[i2]["field_name"].(string)
|
|
|
isPk := list2[i2]["is_pk"].(int64)
|
|
|
if isPk == 1 {
|
|
|
pks += fieldName + ","
|
|
|
}
|
|
|
}
|
|
|
//去掉最后一个逗号
|
|
|
pks = pks[0 : len(pks)-1]
|
|
|
//添加主键描述
|
|
|
createTableSql = `ALTER TABLE "public"."` + tableName + `" ADD CONSTRAINT "` + tableName + `_dw_pkey" PRIMARY KEY ("` + pks + `");` + "\r\n"
|
|
|
_, err = pgDb.SQL(createTableSql).Execute()
|
|
|
if err != nil {
|
|
|
panic(err.Error())
|
|
|
}
|
|
|
|
|
|
fmt.Println("恭喜,数据仓库中相应表格创建完毕!")
|
|
|
}
|
|
|
}
|