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()
_, err := session.Exec(sql)
if err == nil {
sql = statement.genIndexSQL()
if len(sql) > 0 {
sqls := statement.genIndexSQL()
for _, sql := range sqls {
_, err = session.Exec(sql)
if err != nil {
return err
}
}
}
if err == nil {
sql = statement.genUniqueSQL()
if len(sql) > 0 {
sqls := statement.genUniqueSQL()
for _, sql := range sqls {
_, err = session.Exec(sql)
if err != nil {
return err
}
}
}
return err

View File

@ -241,22 +241,24 @@ func (statement *Statement) genCreateSQL() string {
return sql
}
func (statement *Statement) genIndexSQL() string {
var sql string = ""
func (statement *Statement) genIndexSQL() []string {
var sqls []string = make([]string, 0)
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, ","))
sqls = append(sqls, sql)
}
return sql
return sqls
}
func (statement *Statement) genUniqueSQL() string {
var sql string = ""
func (statement *Statement) genUniqueSQL() []string {
var sqls []string = make([]string, 0)
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, ","))
sqls = append(sqls, sql)
}
return sql
return sqls
}
func (statement *Statement) genDropSQL() string {