Update sync code

This commit is contained in:
Yang Luo
2023-10-22 11:56:56 +08:00
parent ee3b46e91c
commit 8a4758c22d
4 changed files with 38 additions and 14 deletions

View File

@ -36,7 +36,12 @@ func (db *Database) onDDL(header *replication.EventHeader, nextPos mysql.Positio
}
func (db *Database) OnRow(e *canal.RowsEvent) error {
log.Info("serverId: ", e.Header.ServerID)
if e.Header != nil {
log.Info("serverId: ", e.Header.ServerID)
} else {
log.Info("serverId: e.Header == nil")
}
if strings.Contains(db.Gtid, db.serverUuid) {
return nil
}
@ -87,11 +92,13 @@ func (db *Database) OnRow(e *canal.RowsEvent) error {
pkColumnValue := getPkColumnValues(oldColumnValue, e.Table.PKColumns)
updateSql, args, err := getUpdateSql(e.Table.Schema, e.Table.Name, columnNames, newColumnValue, pkColumnNames, pkColumnValue)
if err != nil {
log.Error(err)
return err
}
res, err := db.engine.DB().Exec(updateSql, args...)
if err != nil {
log.Error(err)
return err
}
log.Info(updateSql, args, res)
@ -113,11 +120,13 @@ func (db *Database) OnRow(e *canal.RowsEvent) error {
pkColumnValue := getPkColumnValues(oldColumnValue, e.Table.PKColumns)
deleteSql, args, err := getDeleteSql(e.Table.Schema, e.Table.Name, pkColumnNames, pkColumnValue)
if err != nil {
log.Error(err)
return err
}
res, err := db.engine.DB().Exec(deleteSql, args...)
if err != nil {
log.Error(err)
return err
}
log.Info(deleteSql, args, res)
@ -141,11 +150,13 @@ func (db *Database) OnRow(e *canal.RowsEvent) error {
insertSql, args, err := getInsertSql(e.Table.Schema, e.Table.Name, columnNames, newColumnValue)
if err != nil {
log.Error(err)
return err
}
res, err := db.engine.DB().Exec(insertSql, args...)
if err != nil {
log.Error(err)
return err
}
log.Info(insertSql, args, res)