【问题标题】:GUID as uniq key with SQLiteGUID 作为 SQLite 的唯一键
【发布时间】:2013-01-21 21:30:21
【问题描述】:

我找到了GUID generation routine with python

运行代码会得到以下结果。

GUID:00000129e0e72d9b2aab3c1500ac001000e90001 时间:2010 年 7 月 17 日星期六 09:55:33(毫:0.787) IP:172.16.233.1 柜台:715865109

这段代码的cmets有如下信息。

### GUID 是出色的数据库键。他们不需要访问 ### 数据库(获取最大索引号),它们非常独特,并且它们排序 ### 自动按时间。 GUID 可防止合并时发生键冲突 ### 两个数据库一起,合并数据,或者分布式生成key ### 系统。

问题

  • 这是否适用于 SQLite?据我所知,SQLite 中的 INTEGER 类型是 8 字节,而 8 字节,不可能以十进制存储值 0x00000129e0e72d9b2aab3c1500ac001000e90001 或 101362835865894089778560972572099193929729。
  • 有没有办法使用 SQLite 获取全局唯一 ID?

【问题讨论】:

    标签: database sqlite guid


    【解决方案1】:

    除了它占用 32 个字节而不是 16 个字节之外,在 SQLite 中将 GUID 存储为文本有什么问题?

    【讨论】:

    • 不多。顺便说一句,SQLite 可以存储 16/32 位的 INTEGER 吗?
    • 在 SQLite3 中,它们确实支持 64 位整数。请参阅此处sqlite.org/version3.htmlsqlite.org/c3ref/int64.html。我相信您将列定义为“长”或“无符号长”。
    【解决方案2】:

    好文章可以帮助你做出决定......

    主键:ID 与 GUID:

    http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html

    【讨论】:

      【解决方案3】:

      每个 SQLite 数据行都有一个 64 位的本地唯一标识符。 SELECT rowid FROM table...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-30
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多