データベースへ一括登録スクリプト

今現在、完全にWEBの人になってるのに、ナカナカ完成させられない自分にやや呆れています。
あっちがこうだと、こっちがこーで、行ったり来たりです。
で、今回は大量にSQLに登録するときのscriptをしったのでメモ。

広告

大量登録はマルチプルインサートが良いらしい

今作っているベースシステムはやはりWordpressなワケです。

本格SEの人は、
そーゆーのにWordpressは向いてない
と言ってるのは知ってます。

でも、別のシステムを使うにはまた勉強が必要だし、知ってる範囲で一から作ろうとも思わないので

WordPressを上手く使おう

というのが課題の一つでありました。

で、すぐさま躓く事になったのが 記事の投稿とかのデータベース登録関係。
色々調べてはみたけど、効率良く一括でインサートしてくれるような関数が見つからない。

で 諸々 SQL系で調べてみると、『マルチプル』が良いらしい。

ようは

"INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value )
VALUES ( 123, 'abc', 'efg' ),( 124, 'abc2', 'efg2' )"

みたいに書いて、一個のINSERT文で済ませるって事のようです。

なるほど。

"INSERT INTO ...."
"INSERT INTO ...."
"INSERT INTO ...."

のようにはやらないでまとめられるのですね。

参考にさせて頂いたブログ→https://lightgauge.net/database/sqlserver/962/

という事で、機械的にUPしている部分とか、まとめて取得したりする部分は、
ループにループを繰り返しまくりで、SQL文を作って、記事全てをドカンとUP!!

という形にする事が出来ました。

といっても途中で止まってしまう可能性への保険をかけて、総まとめの一歩手前の100件単位だけど。
関数で組めば、後々場所をずらせば総まとめで行けるしとても便利。

ついでに、updateの場合は、デリートでまとめて消して、再度マルチプルでインサートのが早いらしい。

そー考えると、やっぱり専用のテーブル用意すべきでしたね・・・。

その辺は後々考えようかな・・・

ではでは。

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です