最後に挿入されたUUID()プライマリキーをフェッチするために、PHP mysql_insert_id
に相当するものはありますか? (私は常に0を得ます。)MySQLのUUID()主キーのPHP mysql_insert_id()?
答えて
いいえ、last_insert_id()は最後に生成されたauto_incrementフィールドのみを取得します。最初にselect uuid()
を実行してから、そのuuidを使って挿入しなければなりません。
ただし、uuidsは一意になるとは保証されません。単に衝突する可能性はほとんどありません。一意性が必要な場合は、auto_incrementを使用してください。単一のテーブル内で決して再利用されることはありません。
私はauto_incrementが異なるサーバに分割すると失敗すると思っていたので、UUIDの使用法は? – ina
@ina yes、シャーディング(別のサーバーであるかどうかにかかわらず)は、パーティションを切り替えるとauto_incrementの失敗を引き起こす可能性があります。しかし、あなたがテーブルを分割( "シャード")すると、あなたのPKはauto_incrementの値にパーティショニングしているカラムを加えたものになります。 –
私はまだ多くのシステムがユーザーのプライマリIDに対してUUIDを使用する理由を理解しようとしています。私はそれがデータベースが異なるサーバーにまたがっていると仮定し、UUIDのMACアドレスがデータがどのサーバーにあるかを判断するのに役立つと考えていました。しかし、IDが一意であり、拡大縮小可能であることが保証されている場合、なぜUUIDを使用しますか? – ina
私はこれは非常に短く、簡単な解決策が見つかりました:
set @id=UUID();
insert into <table>(<col1>,<col2>) values (@id,'another value');
select @id;
- 1. 主キーUUIDトリガー
- 2. MySQL UUID主キー - PHPまたはMySQLによって生成されますか?
- 3. レプリケーション、uuidフィールド、主キー、行ベースレプリケーション
- 4. カスタムUUIDのように主キー
- 5. Djangoの残りのフレームワークポスト主キーUUIDまたは自動生成
- 6. テーブルと関連付けるMySQLの外部キー関係とmysql_insert_id
- 7. 小さなSQLテーブルの主キーとしてUUIDを使用
- 8. PHPからの主キーを省略MySQLの結果
- 9. mysql_insert_id()
- 10. php - mysql:フォーム処理:主キーの自動生成
- 11. MySQLと2列主キー
- 12. MySql Entity Frameworkデータベースファースト - 主キー=ロング?
- 13. MySql主キー> 900/1000バイト?
- 14. の.NET mvc3 mysqlのテーブルの主キー
- 15. のMySQL Workbenchの主キーの問題
- 16. MySQLのエラー:主キーの重複エントリー「XXX」
- 17. MySQLデータベースの主キーの使用
- 18. は、MySQLの複数の主キー
- 19. UUIDが主キーとして機能しないLaravel
- 20. OrmLiteとPostgresでUUIDを主キーとして扱うには?
- 21. 多行挿入とMySQLの主キー
- 22. Mysql主キーの重複エントリ(AUTO_INCREMENT)
- 23. MySQLの主キーが... DUPLICATE KEY UPDATE ON
- 24. Mysqlの主キー削除と再挿入
- 25. UUIDをデータベースの主キーとして使用すると、Javaのタイプはバイト[
- 26. PostgreSQLのUUIDは主キーとして索引のパフォーマンスが悪いですか?
- 27. (MySQLの)主キーのw/2と同じ外部キー
- 28. mysqlの複合主キーとの外部キー関係
- 29. EloquentモデルのUUID主キーはuuidとして格納されますが、0として返されます。
- 30. MySQLのクエリ(二変数の主キー/ピボットデータを展開)MySQLでは
残念ながら、私はないと思いますが。また、mysql_ *関数の使用を中止し、代わりにmysqli_ *関数またはPDOオブジェクトを使用してください。 –
これは、従来のPHPインストールのブレークサポート以外のものです... PDOにはこれが何かありますか? – ina
「レガシー」とはどういう意味ですか? [Mysqli](http://us.php.net/manual/en/book.mysqli.php)は、かなりサポートされています。 –