Result.LastInsertId(). This is always reliable.
Doing your own
SELECT is not reliable, due to the way the Go driver handles pools of connection. If you do, say:
INSERT foo INTO bar ...
in one statement, then later:
in another statement, you may get different connections to the database for each statement.
This means your manually-selected ID may correspond with some completely unrelated INSERT statement which just happened to occur on that same connection in the past, or you may get nothing at all.