支持生成sqlite建表语句 #4

Merged
zhangdeman merged 3 commits from feture/support_sqlite into master 2024-06-17 18:16:09 +08:00
2 changed files with 9 additions and 6 deletions
Showing only changes of commit 5c7a0d235e - Show all commits

View File

@ -88,15 +88,15 @@ func (i *Index) ToString(tableName string) (string, error) {
// 拼接sql // 拼接sql
switch i.Type { switch i.Type {
case TableIndexPrimary: case TableIndexPrimary:
return fmt.Sprintf("ALTER TABLE `%v` ADD PRIMARY KEY (%v)", tableName, i.FieldList[0]), nil return fmt.Sprintf("PRIMARY KEY (%v)", i.FieldList[0]), nil
case TableIndexUnique: case TableIndexUnique:
return fmt.Sprintf("ALTER TABLE `%v` ADD UNIQUE KEY %v (%v)", tableName, i.Name, strings.Join(i.FieldList, ",")), nil return fmt.Sprintf("UNIQUE KEY %v (%v)", i.Name, strings.Join(i.FieldList, ",")), nil
case TableIndexKey: case TableIndexKey:
return fmt.Sprintf("ALTER TABLE `%v` ADD KEY %v (%v)", tableName, i.Name, strings.Join(i.FieldList, ",")), nil return fmt.Sprintf("KEY %v (%v)", i.Name, strings.Join(i.FieldList, ",")), nil
case TableIndexIndex: case TableIndexIndex:
return fmt.Sprintf("ALTER TABLE `%v` ADD INDEX %v (%v)", tableName, i.Name, strings.Join(i.FieldList, ",")), nil return fmt.Sprintf("INDEX %v (%v)", i.Name, strings.Join(i.FieldList, ",")), nil
default: default:
return fmt.Sprintf("ALTER TABLE `%v` ADD %v %v (%v)", tableName, i.Type, i.Name, strings.Join(i.FieldList, ",")), nil return fmt.Sprintf("%v %v (%v)", i.Type, i.Name, strings.Join(i.FieldList, ",")), nil
} }
case consts.DatabaseDriverSqlite3: case consts.DatabaseDriverSqlite3:
// 拼接sql // 拼接sql

View File

@ -127,7 +127,10 @@ func (t *Table) ToString() ([]string, error) {
indexList = append(indexList, indexStr) indexList = append(indexList, indexStr)
} }
replaceTable[TableFieldList] = strings.Join(fieldList, ",") replaceTable[TableFieldList] = strings.Join(fieldList, ",")
replaceTable[TableIndexList] = strings.Join(indexList, ",") if len(indexList) > 0 && consts.DatabaseDriverMysql == DatabaseDriver {
replaceTable[TableIndexList] = "," + strings.Join(indexList, ",")
indexList = make([]string, 0)
}
if len(t.Engine) > 0 { if len(t.Engine) > 0 {
replaceTable[TableEngine] = "ENGINE=" + t.Engine replaceTable[TableEngine] = "ENGINE=" + t.Engine