create empty table support for postgres

This commit is contained in:
Lunny Xiao 2015-08-28 17:00:48 +08:00
parent 4813c0110d
commit 1246ee6c93
1 changed files with 23 additions and 18 deletions

View File

@ -229,28 +229,33 @@ func (b *Base) CreateTableSql(table *Table, tableName, storeEngine, charset stri
tableName = table.Name tableName = table.Name
} }
sql += b.dialect.Quote(tableName) + " (" sql += b.dialect.Quote(tableName)
sql += " ("
pkList := table.PrimaryKeys if len(table.ColumnsSeq()) > 0 {
pkList := table.PrimaryKeys
for _, colName := range table.ColumnsSeq() { for _, colName := range table.ColumnsSeq() {
col := table.GetColumn(colName) col := table.GetColumn(colName)
if col.IsPrimaryKey && len(pkList) == 1 { if col.IsPrimaryKey && len(pkList) == 1 {
sql += col.String(b.dialect) sql += col.String(b.dialect)
} else { } else {
sql += col.StringNoPk(b.dialect) sql += col.StringNoPk(b.dialect)
}
sql = strings.TrimSpace(sql)
sql += ", "
} }
sql = strings.TrimSpace(sql)
sql += ", "
}
if len(pkList) > 1 { if len(pkList) > 1 {
sql += "PRIMARY KEY ( " sql += "PRIMARY KEY ( "
sql += b.dialect.Quote(strings.Join(pkList, b.dialect.Quote(","))) sql += b.dialect.Quote(strings.Join(pkList, b.dialect.Quote(",")))
sql += " ), " sql += " ), "
} }
sql = sql[:len(sql)-2]
}
sql += ")"
sql = sql[:len(sql)-2] + ")"
if b.dialect.SupportEngine() && storeEngine != "" { if b.dialect.SupportEngine() && storeEngine != "" {
sql += " ENGINE=" + storeEngine sql += " ENGINE=" + storeEngine
} }
@ -262,7 +267,7 @@ func (b *Base) CreateTableSql(table *Table, tableName, storeEngine, charset stri
sql += " DEFAULT CHARSET " + charset sql += " DEFAULT CHARSET " + charset
} }
} }
sql += ";"
return sql return sql
} }