我的印象是,只要让MySQL通过UUID()
生成主键,就可以使该键在服务器之间唯一,等等。
但是,there is no way to fetch the last inserted UUID,它要求每次插入时都执行一个额外的select语句。
有没有可能让PHP生成与MySQL完全相同的UUID()
?
我的印象是,只要让MySQL通过UUID()
生成主键,就可以使该键在服务器之间唯一,等等。
但是,there is no way to fetch the last inserted UUID,它要求每次插入时都执行一个额外的select语句。
有没有可能让PHP生成与MySQL完全相同的UUID()
?
3条答案
按热度按时间kmpatx3s1#
不,PHP不可能生成与MySQL完全相同的
UUID()
,因为它是一个(完全)随机数。听起来您的问题是喜欢在MySQL中使用
UUID()
,但不想执行额外的查询来确定新的UUID
是什么。那么,为什么不让PHP创建
UUID
作为INSERT
查询中的主键呢?www.example.com上的这篇评论php.net应该会告诉你如何做到这一点。使用这些示例函数:
编辑:该页面上有几个方法可以生成不同类型的
UUID
。v4
是伪随机的,但您可以使用不同的版本或创建自己的UUID
生成器。px9o7tmv2#
根据具体的场景,我可能会使用存储过程。
UUID()
,INSERT
语句SELECT
变量p4tfgftt3#
我尝试了第一步:
$uuid = UUID::v4();
,但它挂起了我的服务器,所以另一个想法浮现在脑海中,我尝试如下:从查询
$sql1 = SELECT UUID() AS uuid ;
获取数据然后存储在变量
$uuid
中然后在下面使用