Интерфейс Golang Join массива

Я пытаюсь создать массовую вставку. Я использую гормgithub.com/jinzhu/gorm

import (
    "fmt"
    dB "github.com/edwinlab/api/repositories"
)

func Update() error {
    tx := dB.GetWriteDB().Begin()
    sqlStr := "INSERT INTO city(code, name) VALUES (?, ?),(?, ?)"
    vals := []interface{}{}

    vals = append(vals, "XX1", "Jakarta")
    vals = append(vals, "XX2", "Bandung")

    tx.Exec(sqlStr, vals)

    tx.Commit()

    return nil
}

Но я получил ошибку:

Ошибка 1136: количество столбцов не соответствует значению в строке 1, поскольку я возвращаю неправильный запрос

INSERT INTO city(code, name) VALUES ('XX1','Jakarta','XX2','Bandung', %!v(MISSING)),(%!v(MISSING), %!v(MISSING))

Если я использую ручной запрос, он работает:

tx.Exec(sqlStr, "XX1", "Jakarta", "XX2", "Bandung")

Это сгенерирует:

INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')

Проблема в том, как сделать интерфейс массива для генерации строки, как"XX1", "Jakarta", ...

Спасибо за помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос