mysql主键生成uuid_MySQL UUID主键-由PHP或MySQL生成?

bd96500e110b49cbb3cd949968f18be7.png

I was under the impression that just having MySQL generate the primary key via UUID() would make the key unique across servers, etc.

But, there is no way to fetch the last inserted UUID, which requires that an extra select statement be done each time I insert.

Is it possible to have PHP generate the exact same UUID() that MySQL would generate?

解决方案

No, it's not possible to have PHP generate the exact same UUID() as MySQL because it's a (completely) random number.

It sounds like your problem is that you like using UUID() in MySQL but don't want to execute an extra query to figure out what the new UUID is.

So why not have PHP create the UUID to be used as the primary key in your INSERT query?? This comment on php.net should show you how to do this.

Using those sample functions:

$uuid = UUID::v4();

$sql = "INSERT INTO mytable (uuid, foo) VALUES ('{$uuid}', 'bar');";

echo "The UUID is: ". $uuid;

Edit: There are several methods on that page which generate different types of UUIDs. v4 is pseudo-random, but you could use a different version or create your own UUID generator.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值