タグ

()とAUTO_INCREMENTに関するgouei2001のブックマーク (2)

  • [MySQL] INSERTしたデータのIDを取得したい

    結構需要があると思うんですが、MySQLでINSERTした時、挿入されたデータのID(Auto IncrementなPrimary Key)が取りたいことってよくあると思います。INSERTが1つだけならLAST_INSERT_ID()を用いて取得することができるのですが、バルクインサート(1つのクエリで複数のデータを挿入)では取得出来ません。今回はそれを取得するための方法をまとめたいと思います。MySQLのバージョンは5.1なので、それ以降のMySQLでは苦労しなくてもうまくいくかもしれません。 問題となるのはどこか おおまかに以下の様なことをやりたいわけです。 バルクインサートしたデータのIDを取得したい(AI+PK) ON DUPLICATE KEY UPDATEで変更されたデータのIDも取得したい こんな感じです。まず1つめの条件を外して、単一のINSERT ... ON DUPL

  • ユーザ登録(仮登録・メール・本登録)

    以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、登録用のURLリンクをメールで送付 3. 送付されたリンクをクリックして「登録完了(activate)」とする ユーザ(users) テーブル statusを用意し、デフォルトを1としています。"1"を仮登録状態でログイン不可、"0"を登録としログイン可能にします。その制御は、「scope」が使えそうです。 -- usersテーブル CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL AUTO_INCREMENT , `username` VARCHAR(255) NOT NULL , `password` CHAR(128) NOT NULL ,

    ユーザ登録(仮登録・メール・本登録)
  • 1