To get all the table names, you will have to pull them out from the Statement
returned by Parse
, possibly using reflection. If you run the following code:
stmt, _ := sqlparser.Parse("insert into my_table set my_column=1")
fmt.Printf("%#v
", stmt)
you get the output (indented for readability):
&sqlparser.Insert{
Action:"insert",
Comments:sqlparser.Comments(nil),
Ignore:"",
Table:sqlparser.TableName{
Name:sqlparser.TableIdent{v:"my_table"},
Qualifier:sqlparser.TableIdent{v:""}
},
Partitions:sqlparser.Partitions(nil),
Columns:sqlparser.Columns{sqlparser.ColIdent{_:[0]struct { _ []uint8 }{}, val:"my_column", lowered:""}},
Rows:sqlparser.Values{sqlparser.ValTuple{(*sqlparser.SQLVal)(0xc00000a0c0)}},
OnDup:sqlparser.OnDup(nil)
}
as you can see, this contains a (sub)field of type TableIdent
which contains the requested table from the statement.