为 MySql 中的视图生成唯一的长 ID

2024-02-04

我可以看到三张桌子。它有 6 列,如下所示:

ID | NAME | PRINCIPAL_ID | DESCRIPTION | GROUP_ID | TYPE

正如我正在使用的hibernate要从数据库检索数据,我必须将ID此视图中的列。问题是,我无法生成唯一的ID这似乎是必要的hibernate正确加载数据。

如何为该视图中的每一行提供唯一的 ID?

也许这可以帮助,我不确定: 的组合PRINCIPAL_ID and GROUP_ID可以制作一个唯一的ID。这三个都是Long.


更新:当您坚持将其作为数字时,请像这样创建您的视图:

SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r

但事实就是这样——没有其他的可能性了。将行号转换为long就像我在评论中说的,如果真的真的必须如此long.

或者在一个程序 http://dev.mysql.com/doc/refman/5.1/de/create-procedure.html:

DELIMITER $$
CREATE PROCEDURE selectFromWhatever()
BEGIN
SELECT
(@rownum:=@rownum + 1) AS rownumber,
yourTable.*
FROM
yourTable
, (SELECT @rownum:=0) r;
END $$
DELIMITER ;

然后得到结果

CALL selectFromWhatever()

原答案:

来自 MySQL 手册:

UUID() http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

返回根据生成的通用唯一标识符(UUID) “DCE 1.1:远程过程调用”(附录 A) CAE(通用应用程序) 环境)The Open Group 10 月份发布的规范 1997(文件号 C706,http://www.opengroup.org/public/pubs/catalog/c706.htm http://www.opengroup.org/public/pubs/catalog/c706.htm).

UUID 被设计为在空间和全局上唯一的数字 时间。对 UUID() 的两次调用预计会生成两个不同的 值,即使这些调用是在两台单独的计算机上执行的 彼此不相连。

UUID 是由 5 个 utf8 字符串表示的 128 位数字 aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 格式的十六进制数字:

前三个数字是根据时间戳生成的。

第四个数字保留时间唯一性,以防时间戳值失去单调性(例如,由于日光) 节约时间)。

第五个数字是 IEEE 802 节点号,提供空间唯一性。如果后者不是,则替换为随机数 可用(例如,因为主机没有以太网 卡,或者我们不知道如何找到卡的硬件地址 操作系统上的界面)。在这种情况下,空间唯一性 不能保证。尽管如此,碰撞的发生率应该非常低 可能性。

目前,仅在 FreeBSD 和 Linux 上考虑接口的 MAC 地址。在其他操作系统上,MySQL 使用 随机生成的 48 位数字。

mysql> 选择 UUID(); ->'6ccd780c-baba-1026-9564-0040f4311e29'

Warning

尽管 UUID() 值旨在是唯一的,但它们并不是 必然是不可猜测或不可预测的。如果不可预测性是 如果需要,UUID 值应该以其他方式生成。笔记

UUID() 不适用于基于语句的复制。

其他方式将使用CONCAT()建立您的独特ID。

SELECT CONCAT(PRINCIPAL_ID, '-', GROUP_ID) AS myUniqueID
FROM yourTable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 MySql 中的视图生成唯一的长 ID 的相关文章

随机推荐

  • App.config 似乎被忽略

    作为重构操作的结果 我有了这个类库 我添加了一个 App config 文件并添加了如下内容
  • Spring Websockets STOMP - 获取客户端IP地址

    有没有办法获取STOMP客户端IP地址 我正在拦截入站通道 但我看不到任何方法来检查 IP 地址 任何帮助表示赞赏 您可以在握手期间将客户端 IP 设置为 WebSocket 会话属性HandshakeInterceptor public
  • 检查是否启用了锁定

    我必须检查设置中是否启用了系统锁定 我使用下面的代码行 boolean b android provider Settings System getInt getContentResolver Settings System LOCK PA
  • 如何使用新的 Slick 2.0 HList 克服 22 列限制?

    我目前正在编写 Slick 代码来针对具有两个表 gt 22 列的旧模式 我如何使用新的 HList 代码 http slick typesafe com doc 2 0 0 M3 api scala slick collection he
  • 经过后台推送的一些测试/调试后,iPhone 上的“pushDisallowed”和“决定:绝对不能继续”

    我正在创建一个 Xamarin Forms 应用程序 它通过 Azure 通知中心使用后台推送 该应用程序针对 Android 和 iOS 经过一些初步原型设计和测试后 一切在两个平台上都运行良好 对于 iOS 我发送包含以下内容的推送 a
  • 如何阻止 UIBarButtonItem 文本被截断?

    我有一个UIBarButtonItem在导航栏中 文本标题为 保存 当我切换到全屏时UIPopoverController然后关闭它 我的 UIBarButtonItem 中的文本被截断为 S e 对于所有其他的 Segues 和视图 我返
  • VBA Excel - IFERROR 和 VLOOKUP 错误

    我正在尝试在 Excel VBA 中创建与 IFERROR VLOOKUP 1 公式等效的内容 其中该函数将在数据表中查找文本 如果文本位于表中 则返回第五列中的数字如果不是 则为 1 我已经在 Excel 中测试了上述公式 它给了我想要的
  • 无缝 HTML5 视频循环

    我进行了广泛的搜索以找到解决此问题的方法 但没有成功 我创建了一个 4 秒的视频剪辑 可以在编辑器中无缝循环 然而 当剪辑通过 Safari Chrome 或 Firefox 在页面中运行时 从结尾到开头的播放会出现一个小但明显的暂停 我尝
  • java.lang.NullPointerException Selenium 2 类

    当我的程序从本地计算机运行时运行良好 无需使用带有远程 Web 驱动程序的 selenium 网格 但是 当我使用带有远程 Web 驱动程序的 selenium 网格设置相同的测试用例时 在 eclipse 中收到消息说 java lang
  • 获取当前正在执行的线程的TThread对象?

    我想要一个像 GetCurrentThread 这样的函数 它返回当前执行线程的 TThread 对象 我知道有一个 Win32 API 调用 GetCurrentThread 但它返回线程 Id 如果有可能从该 ID 获取 TThread
  • Python错误:NameError:名称未定义[重复]

    这个问题在这里已经有答案了 import numpy as np from scipy import optimize as opt import time def grad d weight 0 0 learnrate 0 01 tol
  • 未启用延迟段创建功能 (ORA-00439)

    I have sql包含 60 多个表的 DDL 的脚本文件 我正在尝试将脚本复制粘贴到 SQL Developer 中 连接到数据库 Oracle Database 11g Express Edition Release 11 2 0 2
  • zurb 基金会中心网格中的内容

    我试图将图像水平居中到 zurb 列中 但这似乎不可能 我尝试了一切 到处搜索 但我无法让它工作 这是我的代码 div class row div class twelve columns br img src img 06 jpeg al
  • 如何删除 Rabbitmq 以便我可以重新安装

    我遇到了麻烦 所以我进入注册表并删除了rabbitmq的服务条目 现在 当我尝试重新安装时 它说它已经存在 但无法启动 因为我删除了它 我可以执行以下操作sc delete rabbitmq 如何完全删除它的所有痕迹并从头开始重新安装 我猜
  • 我想扩展 std::string,但不是出于您可能认为的原因

    我有一个有效地接受字符串的方法 但是 我想要使用的字符串子集非常有限 我正在考虑将 std string 作为某个类进行 typedef ing 并显式调用函数 不过 我不确定这是否有效 有想法吗 通常的规则仍然适用 该类不是设计为继承的
  • 检查 iOS 应用程序上的互联网连接,Cordova Phonegap 3.3.0 无法正常工作

    我尝试过以下this http cordova apache org docs en 3 3 0 cordova connection connection md html The 20Command Line 0AInterfaceCor
  • ASP.Net MVC 基于安全性隐藏/显示菜单项

    我正在开发一个 ASP Net MVC 3 网站 Layout 主视图包含一个菜单 我想根据您是否登录以及您所处的角色隐藏菜单中的一些项目 目前使用这样的代码可以工作 if HttpContext Current User Identity
  • MySQL默认值错误与ON DUPLICATE KEY UPDATE

    为什么我会收到此错误 MySQL 版本是否发生了某些变化 导致此操作 曾一度有效 现在失败 INSERT INTO 未指定 user id 值would如果插入已完成 则需要 但由于 id 1 已经存在 因此这应该成为更新并且有效 mysq
  • MassTransit - 等待所有活动完成然后继续处理

    如果我有很多活动 是否会导致资源阻塞或请求超时 这是我的场景 我有一个 api 控制器 它向消费者发送订单请求 我使用请求 响应模式来接收错误信息来自消费者的属性并基于该属性响应返回 如果它为空我想返回OK 否则 返回BadRequest
  • 为 MySql 中的视图生成唯一的长 ID

    我可以看到三张桌子 它有 6 列 如下所示 ID NAME PRINCIPAL ID DESCRIPTION GROUP ID TYPE 正如我正在使用的hibernate要从数据库检索数据 我必须将ID此视图中的列 问题是 我无法生成唯一