开发文档 v2.x

UUID

更新时间:2022年8月21日 11:01 浏览:171

标准 UUID 长36位,形式: 8-4-4-4-12,如:324c38e8-ed72-11ec-8974-0242ac180065。

BE 框架系统应用,官方开发的应用,均使用了 UUID 型的主键。

使用了 UUID 作为主键时,可设置字段默认值 “uuid()”,BE双驱框架会识别并特殊处理。

建表示例:

CREATE TABLE `user` (
`id` varchar(36) NOT NULL DEFAULT 'uuid()' COMMENT 'UUID',
`name` varchar(60) NOT NULL DEFAULT '' COMMENT '名称',
  // ...

注意,默认值 “uuid()” 不是 mysql 原生的功能,插入数据时 mysql 并不会特殊处理。只有在 BE双驱框架中才有效

示例:

$tuple = Be::getTuple('user');
$tuple->name = '张三';
$tuple->insert();

// 自动生成类似 130387d3-9796-11ec-9b24-0242ac180065 的 UUID
// 如果使用了自增主键, 将是一个整数
$userId = $tuple->id;  

 

UUID 工具类

// 生成一个标准 UUID,例:324c38e8-ed72-11ec-8974-0242ac180065
// 优先使用 UUID 扩展件生成(uuid_create),未安装该扩展时,使用数据库生成
$uuid = Be\Util\Str\Uuid::create();

// 移除 UUID 的中划张 324c38e8ed7211ec89740242ac180065
$stripedUuid = Be\Util\Str\Uuid::strip($uuid);

// 将移除中划线的 UUID 还原成标准 UUID
$uuid = Be\Util\Str\Uuid::restore($stripedUuid);

 

可通过 Db 类直接获取 UUID

$db = Be::getDb();

// 通过 数据库生成一个 UUID,执行 SQL "SELECT UUID()"
$uuid = $db->uuid();

 

UUID 字段,如果不是通过 行模型(Tuple)插入数据时,一定要记得赋值。

 

导航