oracle drop table fixed
This commit is contained in:
parent
ba131dd9a0
commit
044198f373
|
@ -565,10 +565,18 @@ func (db *oracle) SupportCharset() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *oracle) SupportDropIfExists() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (db *oracle) IndexOnTable() bool {
|
func (db *oracle) IndexOnTable() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *oracle) DropTableSql(tableName string) string {
|
||||||
|
return fmt.Sprintf("DROP TABLE `%s`", tableName)
|
||||||
|
}
|
||||||
|
|
||||||
func (b *oracle) CreateTableSql(table *core.Table, tableName, storeEngine, charset string) string {
|
func (b *oracle) CreateTableSql(table *core.Table, tableName, storeEngine, charset string) string {
|
||||||
var sql string
|
var sql string
|
||||||
sql = "CREATE TABLE "
|
sql = "CREATE TABLE "
|
||||||
|
|
50
session.go
50
session.go
|
@ -563,7 +563,7 @@ func (session *Session) DropIndexes(bean interface{}) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// DropTable drop a table and all indexes of the table
|
// DropTable drop a table and all indexes of the table
|
||||||
func (session *Session) DropTable(bean interface{}) error {
|
/*func (session *Session) DropTable(bean interface{}) error {
|
||||||
defer session.resetStatement()
|
defer session.resetStatement()
|
||||||
if session.IsAutoClose {
|
if session.IsAutoClose {
|
||||||
defer session.Close()
|
defer session.Close()
|
||||||
|
@ -583,6 +583,30 @@ func (session *Session) DropTable(bean interface{}) error {
|
||||||
sqlStr := session.Engine.Dialect().DropTableSql(session.Statement.TableName())
|
sqlStr := session.Engine.Dialect().DropTableSql(session.Statement.TableName())
|
||||||
_, err := session.exec(sqlStr)
|
_, err := session.exec(sqlStr)
|
||||||
return err
|
return err
|
||||||
|
}*/
|
||||||
|
|
||||||
|
func (session *Session) DropTable(beanOrTableName interface{}) error {
|
||||||
|
tableName, err := session.Engine.tableName(beanOrTableName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var needDrop = true
|
||||||
|
if !session.Engine.dialect.SupportDropIfExists() {
|
||||||
|
sqlStr, args := session.Engine.dialect.TableCheckSql(tableName)
|
||||||
|
results, err := session.query(sqlStr, args...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
needDrop = len(results) > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if needDrop {
|
||||||
|
sqlStr := session.Engine.Dialect().DropTableSql(tableName)
|
||||||
|
_, err = session.exec(sqlStr)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (statement *Statement) JoinColumns(cols []*core.Column) string {
|
func (statement *Statement) JoinColumns(cols []*core.Column) string {
|
||||||
|
@ -1367,16 +1391,21 @@ func (session *Session) isColumnExist(tableName string, col *core.Column) (bool,
|
||||||
//return len(results) > 0, err
|
//return len(results) > 0, err
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
func (session *Session) IsTableExist(beanOrTableName interface{}) (bool, error) {
|
func (engine *Engine) tableName(beanOrTableName interface{}) (string, error) {
|
||||||
v := rValue(beanOrTableName)
|
v := rValue(beanOrTableName)
|
||||||
var tableName string
|
|
||||||
if v.Type().Kind() == reflect.String {
|
if v.Type().Kind() == reflect.String {
|
||||||
tableName = beanOrTableName.(string)
|
return beanOrTableName.(string), nil
|
||||||
} else if v.Type().Kind() == reflect.Struct {
|
} else if v.Type().Kind() == reflect.Struct {
|
||||||
table := session.Engine.autoMapType(v)
|
table := engine.autoMapType(v)
|
||||||
tableName = table.Name
|
return table.Name, nil
|
||||||
} else {
|
}
|
||||||
return false, errors.New("bean should be a struct or struct's point")
|
return "", errors.New("bean should be a struct or struct's point")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (session *Session) IsTableExist(beanOrTableName interface{}) (bool, error) {
|
||||||
|
tableName, err := session.Engine.tableName(beanOrTableName)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return session.isTableExist(tableName)
|
return session.isTableExist(tableName)
|
||||||
|
@ -1507,9 +1536,8 @@ func (session *Session) dropAll() error {
|
||||||
for _, table := range session.Engine.Tables {
|
for _, table := range session.Engine.Tables {
|
||||||
session.Statement.Init()
|
session.Statement.Init()
|
||||||
session.Statement.RefTable = table
|
session.Statement.RefTable = table
|
||||||
err := session.Engine.Dialect().MustDropTable(session.Statement.TableName())
|
sqlStr := session.Engine.Dialect().DropTableSql(session.Statement.TableName())
|
||||||
//sqlStr := session.Statement.genDropSQL()
|
_, err := session.exec(sqlStr)
|
||||||
//_, err := session.exec(sqlStr)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue