package main import ( "fmt" "github.com/xwb1989/sqlparser" ) func main() { sql := "UPDATE orders, inventory SET orders.status = 'Processed', inventory.stock = inventory.stock - orders.quantity WHERE orders.product_id = inventory.product_id AND orders.id = 1 AND inventory.stock >= orders.quantity" stmt, err := sqlparser.Parse(sql) if err != nil { fmt.Println("Parse error: ", err.Error()) return } update, ok := stmt.(*sqlparser.Update) if !ok { fmt.Println("Not an UPDATE statement") return } for _, table := range update.TableExprs { switch t := table.(type) { case *sqlparser.AliasedTableExpr: fmt.Println("Table: ", sqlparser.String(t.Expr)) } } for _, expr := range update.Exprs { fmt.Printf("Column: %s, New value: %s\n", expr.Name.Name, sqlparser.String(expr.Expr)) } }