2016-05-28 8 views
-3

go-sql-driver/mysqlを使用して、OMDBデータダンプから1トンのムービーを挿入しています。私はデータを解析し、次のコードを挿入しています:150行以上を挿入できません

_, err = database.Query("INSERT INTO `movies` (`name`, `year`, `release_date`, `full_plot`, `genre`, `imdb_id`) VALUES (?, ?, ?, ?, ?, ?)", movie.Name, movie.Year, movie.ReleaseDate, movie.FullPlot, movie.Genre, movie.IMDBID) 

if err != nil { 
    return false, nil 
} 
return true, nil 

これは動作しますが、わずか150行です。私は何か間違っているのですか?

+1

'return false、nil'なぜエラーを返さないのですか?役に立つ情報がいくつかある可能性があります。 –

答えて

1

あなたのコードは、返されたエラー値を破棄したようです。それを優雅に扱う。エラーが何であるかを参照してください。DBへの接続が多すぎる場合は、データベース接続プールを使用して(*DB) SetMaxOpenConnsの値を設定する必要があります。

(*DB)Queryは、一般的に、あなたのINSERTため(*DB)Execまたは(*Stmt)Execを使用して、行を返すSELECT文に使用されます。

私はdb接続プールと(*sql.DB)Prepareを使ってステートメントを準備し、準備されたステートメントを使用して(並行して)挿入を実行することをお勧めします。

https://golang.org/pkg/database/sql/#DB.Prepare

+0

エラーを投げることは見落としです、ありがとう、私は準備機能を調べます。 – Fireynis

+0

接続が多すぎるため、execが修正しました。ありがとうございました。 – Fireynis

関連する問題