瀏覽代碼

Merge pull request #15 from iamsee/master

增加索引类型判定,目前xorm:'unique'无法创建唯一索引
xormplus 7 年之前
父節點
當前提交
f2a6ec42e6
共有 1 個文件被更改,包括 13 次插入2 次删除
  1. 13 2
      dialect_mysql.go

+ 13 - 2
dialect_mysql.go

@@ -489,8 +489,19 @@ func (db *mysql) GetIndexes(tableName string) (map[string]*core.Index, error) {
 
 func (db *mysql) CreateIndexSql(tableName string, index *core.Index) string {
 	quote := db.Quote
-	return fmt.Sprintf("CREATE INDEX %v ON %v (%v);", quote(indexName(tableName, index.Name)),
-		quote(tableName), quote(strings.Join(index.Cols, quote(","))))
+	//return fmt.Sprintf("CREATE INDEX %v ON %v (%v);", quote(indexName(tableName, index.Name)),
+	//	quote(tableName), quote(strings.Join(index.Cols, quote(","))))
+	switch index.Type {
+	case 1:
+		return fmt.Sprintf("CREATE INDEX %v ON %v (%v);", quote(indexName(tableName, index.Name)),
+			quote(tableName), quote(strings.Join(index.Cols, quote(","))))
+	case 2:
+		return fmt.Sprintf("CREATE UNIQUE INDEX %v ON %v (%v);", quote(indexName(tableName, index.Name)),
+			quote(tableName), quote(strings.Join(index.Cols, quote(","))))
+	default:
+		return fmt.Sprintf("CREATE INDEX %v ON %v (%v);", quote(indexName(tableName, index.Name)),
+			quote(tableName), quote(strings.Join(index.Cols, quote(","))))
+	}
 }
 
 func (db *mysql) Filters() []core.Filter {