cakephp ID 文字列 ランダム
CakePHPでID列にランダム文字列を設定する
バージョン
CakePHP 2.6.4
http://shim0111.hatenablog.com/entry/2015/04/30/121925
↑の様な事をCakePHPでやりたかったが
IDに既に存在する文字列のデータを入力しようとすると勝手にUpdateになってしまい
一意制約違反を捉まえられなかった
で、どうしようかと調べていたら
http://book.cakephp.org/2.0/ja/getting-started/cakephp-conventions.html#id3
また、主キーをオートインクリメントとしてではなく、char(36)として使用しても構いません。 そうすると、Model::save メソッドを使って新規レコードを保存するとき、Cakeはユニークな36文字のuuid (String::uuid) を用いようとします。
と言う事で、自分でランダム文字列を作る必要も、重複した場合の処理を考えることもなく
主キーの定義をCHAR(36)に変えるだけで問題解決した。