问题标签 [sql-domain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1056 浏览

python - 如何在 SQLAlchemy 中表示自定义 PostgreSQL 域?

我开始将 Alembic 合并到我已经使用 SQLAlchemy 表定义的项目中。目前我的数据库架构在我的应用程序外部进行管理,我想将整个架构放入我的表定义文件中。

在 PostgreSQL 中,我使用自定义域来存储电子邮件地址。PostgreSQL DDL 是:

如何在 SQLAlchemy 中表示该域的创建以及将其用作列数据类型?

0 投票
1 回答
57 浏览

postgresql - 文本数据类型的域是否存储为表中的文本?(PostgreSQL)

因为 PostgreSQL 中没有set类型,所以我不得不使用domain. 我已经命名了一个域性别。它是文本类型。然后在 users 表中,我创建了一个具有该性别类型的列。现在,如何将性别存储在 users 表中?作为文本还是二进制?

0 投票
0 回答
200 浏览

java - 如何在从数据模型生成 DDL 时从枚举生成域?

enum有没有办法为从数据模型生成 DDL 时定义的字段生成域?

定义为的字段的默认行为enumEnumType.STRINGEnumType.ORDINAL。在这种特殊情况下,我使用@Enumerated(EnumType.STRING).

我的枚举.java

我的实体.java

不幸的是,这被定义为“仅” character varying(255)(我使用的是 PostgreSQL RDBMS)。

这当然提供了将与实际无关的垃圾放在那里的机会enum

在这个地方,我希望能够提示 Hibernate 生成一个域,其中只包含那些实际属于枚举的允许值。

作为一种解决方法,我想使用@Check注释生成检查约束。然而令人遗憾的是,这不能动态地完成。我想循环遍历MyEnum.values()以生成此检查,这样我就不必在枚举获取附加值时同时更改它。

这当然会导致语法错误

注释属性 Check.constraints 的值必须是常量表达式。

这对我来说很清楚,因为属性值必须在编译时确定。

有没有其他方法可以巧妙地做到这一点?

0 投票
2 回答
313 浏览

postgresql - jOOQ 和 PostgreSQL 域:映射到特定对象类型

我正在使用 PostgreSQL 9.5 和 jOOQ 3.8.4 进行一些测试。

具体来说,我想创建一个如下所示的域:

然后我想创建一个类型如下:

最后,我有一个表,其类型为字段,例如:

我看到 jOOQ 3.8.4 将字段映射生something成为Object(在表记录和 POJO 中)。我期待BigDecimal,因为该域使用NUMERIC.

我错了吗?如果没有,有什么办法可以解决这个问题吗?

也许我可以使用customTypesandforcedTypes注册一个转换器,但我不确定它是否适用于用户定义的类型!有这方面的经验吗?

0 投票
1 回答
286 浏览

arrays - 为查询返回的每一行调用 set-returning plpgsql 函数

在我的 Postgres 9.6 数据库中,我有以下自定义域和表定义:

以下函数能够为单个项目产生我想要的结果。

结果1

我想对执行特定查询产生的所有 id' 执行相同的操作,并最终得到如下结果:

reslt2

0 投票
1 回答
110 浏览

postgresql - 通过自定义域的recurrency自定义域数组

文档没有说明从其他自定义域创建域。

我只需要创建(以前创建的)自定义域的数组,所以这不是这里讨论的问题/解决方案

例子:

但是 PostgreSQL 不接受像CREATE FUNCTION intersection(jbag[]) RETURNS jbag.

怎么做CREATE DOMAIN jbag[] AS jbag[]?...或者对 postgresql-parser 说“你好,让我们接受原子自定义类型的数组!”?


有关详细信息,请参阅bag.sql

0 投票
1 回答
136 浏览

postgresql - PostgreSQL 12 中是否可以使用自定义域数组?

我已将自定义域声明tmoney

然后我在表声明中使用它的数组,

在 PostgreSQL 12 中没有解析异常,因为它似乎以前存在过(请参阅创建自定义域 postgres 数组),但是,每当我尝试检索作为 tmoney[] 插入的值时,都会发现 DBCException。请注意,smallint[] 不会发生此错误。

https://www.postgresql.org/docs/current/sql-createdomain.html上的文档仅指定

tdata_type – 域的基础数据类型。这可以包括数组说明符。

这与创建为的域一致

但是,由于 PostgreSQL 12 解析器不阻止tmoney[5]在表声明中使用,我想知道是否有不同的语法允许我使用自定义域的第一个版本。

0 投票
1 回答
50 浏览

mysql - MySQL 替代 PostgreSQL 的自定义数据类型(和域)

在 PostgreSQL 中,如果我将特定数据类型(例如 an mail address)存储在跨多个表的多个列中,我可以简单地定义具有所有约束的自定义邮件类型,如下所示:

然后像这样使用它:

我发现 MySQL 不是对象关系数据库,因此没有自定义数据类型。

我的问题是:

人们如何在 MySQL 中处理多列中重复出现的数据类型,以防止复制粘贴相同的约束?

0 投票
1 回答
68 浏览

postgresql - 更改 DOMAIN 中的 CHECK 约束

有没有办法修改DOMAINPostgres 13.4中现有约束的细节?

我一直在尝试并检查文档,并怀疑答案是:“不DROP。约束(或域和约束?),并重建它。”

这很尴尬,因为我有已经使用约束的字段和函数,所以我还必须使用一些级联的项目DROP​​和CREATE. 我可以这样做,但它有点牵涉。

例如,我有一个简单的域列表,如下所示:

我想通过再插入一个名称来更改VALUE IN列表: 。CHECK'user_analytics'

在不删除和重建域、约束或两者的情况下,这是否可能?

如果不是,我可以进行级联删除和重建,并为未来计算出DOMAIN不适合此类事情的工具。我总是可以使用一个小的查找表来代替。我只是喜欢DOMAIN它使参数和列的意图更清晰。