UUID
更新时间:2024年11月19日 22:35
浏览:748
标准 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)插入数据时,一定要记得赋值。