我在迁徙中见过这个
enable_extension 'uuid-ossp'
据我所知,uuid是一个基于某些RFC的长唯一字符串,这使得db(在本例中为pg)可以将列类型作为uuid
我的问题是-为什么需要这种类型的列而不仅仅是字符串列?是替换常规整数id列并使用uuid作为id吗?
使用uuid作为id而不仅仅是让字符串类型列包含uuid有什么好处吗?
使用uuid
类型不需要安装该扩展。使用UUID类型而不是文本类型的优点有两个。第一个是自动约束
select 'a'::uuid;
ERROR: invalid input syntax for uuid: "a"
其次是存储空间。UUID仅使用16个字节,而十六进制表示法使用33个字节:
select
pg_column_size('0123456789abcdef0123456789abcdef'),
pg_column_size('0123456789abcdef0123456789abcdef'::uuid)
;
pg_column_size | pg_column_size
----------------+----------------
33 | 16
uuid-ossp
扩展只是添加了生成UUID
的函数。
我希望看到更多的人加入进来,但我认为uuid的想法是将id列替换为更独特的id,这在拥有分布式数据库或处理复制时尤其有用。
优点:
欺骗:
以下是一些我发现有价值的资源:
我是博士后新手,有一些问题。我在我的linux系统上安装了postgresql,它在系统上创建了一个用户postgres,我在pgadmin中也有一个postgres用户,他们是同一个用户吗? 我对jboss有问题,连接数据源会导致密码验证问题。 pg_hba。形态: 例外情况: 由以下原因引起:org.postgresql.util.PSQL异常:FATAL:org.postgresql.cor
根据我在pg_hba.conf中读到的内容,我推断,为了确保我被提示输入postgres用户的密码,我应该将pg_hba.conf的前两个条目方法从当前的“对等”编辑为“密码”或“md5”,但如果这是错误的,我不想破坏东西。我的方向是正确的吗?还是遗漏了一些明显的东西? 无论如何,更多细节- 在debian上安装了postgres 9.4之后,我通过这样做更改了postg雷斯用户的密码- …并输入
问题内容: 我的实体类映射如下: 我创建干净的新数据库和属性: 创建 为什么在创建数据库后,地狱(抱歉,此错误浪费了将近两天),我的postgres数据库中有一个序列? 我不想有一个序列,我只是想自动增加自动生成的值。 问题答案: 在PostgreSQL中,自动增量使用伪类型进行处理。您在执行时使用此类型。 现在要点-这种伪类型创建一个序列。使用创建的序列来处理自动增量。该列的默认值为- 。 在H
问题内容: 在psql中,如果键入“从用户中选择*”,您将得到类似以下的内容: 在这种情况下,用户是什么? 问题答案: 在这种情况下,是内部保留的Postgres函数,它代表当前登录到数据库的用户。 该查询也可以写成: 哪个应该产生相同的结果。请注意,如果您想实际引用或创建一个名为的表,则必须使用引号或完全限定其所在的架构。例如: 可以工作,但是: 会产生错误。 这是其他系统信息功能的参考: ht
问题内容: 该符号在PHP中是什么意思? 问题答案: PHP提供了一些控制结构的替代语法。即,是否,for,foreach和switch。在每种情况下,替代语法的基本形式都是将左大括号更改为冒号(:),将右大括号更改为endif;,endwhile;,endfor;,endforeach;或endswitch;。
本文向大家介绍JSP中的scriptlet是什么,其语法是什么?,包括了JSP中的scriptlet是什么,其语法是什么?的使用技巧和注意事项,需要的朋友参考一下 脚本可以包含任意数量的JAVA语言语句,变量或方法声明或在页面脚本语言中有效的表达式。 以下是Scriptlet的语法- 您可以编写与上述语法等效的XML,如下所示- 您编写的任何文本,HTML标记或JSP元素都必须在scriptlet