最後に挿入された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. テーブルと関連付けるMySQLの外部キー関係とmysql_insert_id
- 5. PHPからの主キーを省略MySQLの結果
- 6. MySql主キー> 900/1000バイト?
- 7. MySQLと2列主キー
- 8. MySql Entity Frameworkデータベースファースト - 主キー=ロング?
- 9. の.NET mvc3 mysqlのテーブルの主キー
- 10. のMySQL Workbenchの主キーの問題
- 11. は、MySQLの複数の主キー
- 12. MySQLデータベースの主キーの使用
- 13. Mysqlの主キー削除と再挿入
- 14. MySQLの主キーが... DUPLICATE KEY UPDATE ON
- 15. mysql_insert_id()
- 16. UUIDをデータベースの主キーとして使用すると、Javaのタイプはバイト[
- 17. PostgreSQLのUUIDは主キーとして索引のパフォーマンスが悪いですか?
- 18. EloquentモデルのUUID主キーはuuidとして格納されますが、0として返されます。
- 19. (MySQLの)主キーのw/2と同じ外部キー
- 20. MySQLのクエリ(二変数の主キー/ピボットデータを展開)MySQLでは
- 21. Mysql再起動自動int主キー
- 22. MySql UUID duplication BUG
- 23. PHP MySQLで重複フィールド値の主キーIDを取得する方法は?
- 24. 主キー
- 25. MySQLとUUIDの問題
- 26. SQL Serverの:主キー
- 27. Apache Sparkの主キー
- 28. フェニックスの主キーが
- 29. 6データベースの主キー
- 30. mysql_insert_id()の振る舞い
残念ながら、私はないと思いますが。また、mysql_ *関数の使用を中止し、代わりにmysqli_ *関数またはPDOオブジェクトを使用してください。 –
これは、従来のPHPインストールのブレークサポート以外のものです... PDOにはこれが何かありますか? – ina
「レガシー」とはどういう意味ですか? [Mysqli](http://us.php.net/manual/en/book.mysqli.php)は、かなりサポートされています。 –