pythonでMySQLdbを用いて、SQL文を作成しております。
今回やりたいこととしましては、
Railsでいうところのfind_or_initialize_byのような処理をSQL文で生成したいです。
DBに対象レコードがあれば取得し、なければ、initializeするといったことです。
200件ほどデータがあり(今後も増える)、ループを回し、そのループの中で、SQL文を生成しなくてはいけないため、
純粋にSELECT文をしてなければ、INSERTをするといったことをすると処理に時間がかかってしまうため、
initializeのようなことができればなと思いました。
よろしくお願いします。
補足
皆様の回答を拝見して補足します。
find_or_initialize_byでは、DBに保存されないので、
ここだけのSQLを見るのはおかしいという点、理解出来ました。
また、今回の一番の趣旨は、find_or_create_byのようにやると、
INSERT文がループの回数だけ発生してしまうため、
そうではなく、一括で更新できるようなSQL文を作成したいです。
そういう点では、Bulk insertなどが近いのかなと思いました。
とはいえど、すべてが既存レコードというわけではないので、
レコードが見つからなかったら、newして、・・・と考えていたら、find_or_initialize_by
に辿り着きました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。