This commit is contained in:
Lunny Xiao 2013-07-27 21:59:11 +08:00
parent dd06d9a4cf
commit a7f6aa92d3
2 changed files with 20 additions and 12 deletions

View File

@ -337,15 +337,21 @@ func (session *Session) CreateTable(bean interface{}) error {
sql := statement.genCreateSQL() sql := statement.genCreateSQL()
_, err := session.Exec(sql) _, err := session.Exec(sql)
if err == nil { if err == nil {
sql = statement.genIndexSQL() sqls := statement.genIndexSQL()
if len(sql) > 0 { for _, sql := range sqls {
_, err = session.Exec(sql) _, err = session.Exec(sql)
if err != nil {
return err
}
} }
} }
if err == nil { if err == nil {
sql = statement.genUniqueSQL() sqls := statement.genUniqueSQL()
if len(sql) > 0 { for _, sql := range sqls {
_, err = session.Exec(sql) _, err = session.Exec(sql)
if err != nil {
return err
}
} }
} }
return err return err

View File

@ -241,22 +241,24 @@ func (statement *Statement) genCreateSQL() string {
return sql return sql
} }
func (statement *Statement) genIndexSQL() string { func (statement *Statement) genIndexSQL() []string {
var sql string = "" var sqls []string = make([]string, 0)
for indexName, cols := range statement.RefTable.Indexes { for indexName, cols := range statement.RefTable.Indexes {
sql += fmt.Sprintf("CREATE INDEX IDX_%v_%v ON %v (%v);", statement.TableName(), indexName, sql := fmt.Sprintf("CREATE INDEX IDX_%v_%v ON %v (%v);", statement.TableName(), indexName,
statement.TableName(), strings.Join(cols, ",")) statement.TableName(), strings.Join(cols, ","))
sqls = append(sqls, sql)
} }
return sql return sqls
} }
func (statement *Statement) genUniqueSQL() string { func (statement *Statement) genUniqueSQL() []string {
var sql string = "" var sqls []string = make([]string, 0)
for indexName, cols := range statement.RefTable.Uniques { for indexName, cols := range statement.RefTable.Uniques {
sql += fmt.Sprintf("CREATE UNIQUE INDEX UQE_%v_%v ON %v (%v);", statement.TableName(), indexName, sql := fmt.Sprintf("CREATE UNIQUE INDEX UQE_%v_%v ON %v (%v);", statement.TableName(), indexName,
statement.TableName(), strings.Join(cols, ",")) statement.TableName(), strings.Join(cols, ","))
sqls = append(sqls, sql)
} }
return sql return sqls
} }
func (statement *Statement) genDropSQL() string { func (statement *Statement) genDropSQL() string {