mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-27 03:20:25 +08:00
36 lines
912 B
Go
36 lines
912 B
Go
package dbi
|
|
|
|
import (
|
|
"database/sql"
|
|
)
|
|
|
|
const (
|
|
// -1. 无操作
|
|
DuplicateStrategyNone = -1
|
|
// 1. 忽略
|
|
DuplicateStrategyIgnore = 1
|
|
// 2. 更新
|
|
DuplicateStrategyUpdate = 2
|
|
)
|
|
|
|
type DbCopyTable struct {
|
|
Id uint64 `json:"id"`
|
|
Db string `json:"db" `
|
|
TableName string `json:"tableName"`
|
|
CopyData bool `json:"copyData"` // 是否复制数据
|
|
}
|
|
|
|
// -----------------------------------元数据接口定义------------------------------------------
|
|
// 数据库方言 用于获取元信息接口、批量插入等各个数据库方言不一致的实现方式
|
|
type Dialect interface {
|
|
|
|
// GetDbProgram 获取数据库程序模块,用于数据库备份与恢复
|
|
GetDbProgram() (DbProgram, error)
|
|
|
|
// 批量保存数据
|
|
BatchInsert(tx *sql.Tx, tableName string, columns []string, values [][]any, duplicateStrategy int) (int64, error)
|
|
|
|
// 拷贝表
|
|
CopyTable(copy *DbCopyTable) error
|
|
}
|