复合类型数组的正确语法

2023-11-24

CREATE TYPE pencil_count AS(
    pencil_color varchar(30),
    count integer
);

CREATE TABLE pencils(id serial, pencils_ pencil_count[]);

INSERT INTO pencils(pencils_) VALUES('{("blue",5),("red",2)}');

这不起作用并给出错误:

数组文字格式错误。

如果我想添加这个复合数组而不使用ARRAY[...]?


到目前为止的建议还不是最佳的。有一个更简单的解决方案和实际适用的解释。
有疑问时,只需让 Postgres 向您展示即可:

CREATE TEMP TABLE pencil_count (  -- table also registers row type
  pencil_color varchar(30)
, count integer
);

CREATE TEMP TABLE pencils (
  id serial
, pencils_ pencil_count[]
);

插入 2 个基本行:

INSERT INTO pencil_count VALUES ('red', 1), ('blue', 2);

请参阅语法基本行类型:

SELECT p::text AS p_row FROM pencil_count p;

  p_row
----------
 (red,1)
 (blue,2)

请参阅语法行数组:

SELECT ARRAY(SELECT p FROM pencil_count p)::text AS p_row_arr;

       p_row_arr
------------------------
 {"(red,1)","(blue,2)"}

您所需要做的就是将每个行文字用双引号括起来 - 这仅需要禁用comma在每个行类型中。
当没有额外的特殊字符时,额外的(转义的)双引号将是多余的噪音。

这些都与转义字符串语法没有任何关系,它已经被转向off从 Postgres 9.1 开始默认。您必须通过前缀显式声明转义字符串语法E, like E'string\n'。但没有充分的理由这样做。

fiddle
Old sqlfiddle

相关答案及更多解释:

  • 在 PostgreSQL 中插入带单引号的文本
  • 如何将自定义类型数组传递给 Postgres 函数
  • 用于 INSERT 行数组的 PL/pgSQL 函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复合类型数组的正确语法 的相关文章

  • 使用临时表替换 WHERE IN 子句

    我让用户输入我需要在表中查询的值列表 该列表可能非常大 并且长度在编译时未知 而不是使用WHERE IN 我认为使用临时表并对其执行联接会更有效 我在另一个SO问题中读到了这个建议 目前找不到它 但会在找到时进行编辑 要点是这样的 CREA
  • Pycharm错误:配置不正确

    在我的 DEV 计算机意外关闭后 当返回 Pycharm 项目时 我注意到我正在编辑的 Django 视图文件 有 700 多行 发生这种情况时 它完全是空的 我设法从备份中恢复它 那里没有损失 尝试调试时出现问题 它返回此错误 不正确配置
  • 如何使用 JQuery 提取嵌套 HTML 中的文本?

    我这里有 HTML 代码 div class actResult style border solid table tbody tr td Order Number td td 1 td tr tr td Customer Number t
  • 查明用户是否有权在 PostgreSQL 中选择/更新/...表/函数/...

    确定用户是否对 PostgreSQL 中的某个类 例如表或函数 拥有特定权限 例如选择或执行 的推荐方法是什么 此刻我得到了类似的东西 aclcontains someColumnWithAclitemArray makeaclitem u
  • 无需递归即可展平多个嵌套数组的数组 - javascript

    也许这是一个愚蠢的问题 但我无法意识到是否可以在不使用递归的情况下展平多维数组 我用递归编写了一种解决方案 function transform arr var result arr forEach flatten function fla
  • 使用 docker 在 NodeJS 上对 Postgres 进行 ECONNREFUSED

    我正在使用 postgresql 构建一个在 NodeJS 上运行的应用程序 我使用 SequelizeJS 作为 ORM 为了避免使用真正的 postgres 守护进程并在我自己的设备上使用 nodejs 我使用带有 docker com
  • using 可用于为数组键入别名吗?

    我不确定我的措辞是否正确 因为这有点奇怪 基本上我发现了一些这样的代码 template
  • FutureWarning:使用非元组序列进行多维索引

    我收到的警告是 C Users el Anaconda3 envs Py3 lib site packages scipy io matlab miobase py 414 FutureWarning 使用非元组序列进行多维 不推荐使用索引
  • 嵌套 NumPy 数组并使用拆分等方法

    我是 NumPy 的新手 正在尝试在我的代码中使用它来处理某些表 我有一个如下所示的坐标列表 coordinates 2 0 0 1 3 4 并想这样写 coordinatesNumpy np array 2 0 0 1 3 4 在常规 P
  • Postgres 上的 C 语言环境和 Posix 语言环境有什么区别?

    我知道 Postgres 上的数据库区域设置负责国家字符的正确顺序 正确的小写 大写等 但为什么有两种语言中立的语言环境 posix and c 它们之间有什么区别 还是只是一个中立的语言环境有两个不同的名称 UPDATE正如 Magnus
  • 如何通过在切片上查找来从切片复制到数组

    我正在编写一个库来处理二进制格式 我有一个带有数组变量的结构 我想保留它以用于文档目的 我还需要从输入字节片中查找和判断 一些伪代码 type foo struct boo 5 byte coo 3 byte func main input
  • 使用 PostgreSQL 的模式和 Rails 创建多租户应用程序

    我已经想通的事情 我正在学习如何在 Rails 中创建多租户应用程序 该应用程序根据用于查看应用程序的域或子域来提供来自不同模式的数据 我已经回答了一些问题 如何让 subdomain fu 也能与域一起使用 这是有人问了同样的问题 htt
  • Laravel 7.x eloquent addSelect 子查询来计数

    与 一起工作Laravel 7 x and Postgresql 我有一个User类和GroupPivot数据透视表 可以对多个模型进行分组 我想创建一个专栏User如果用户拥有针对该组的当前数据透视条目 则为 true 或 false 类
  • 将结构体数组传递给函数 C++

    抱歉这个菜鸟问题我只是有点困惑 如果我在 main 中有一个结构数组 我想将其传递给函数 struct MyStruct int a int b char c mayarray 5 MyStruct StructArray 10 myFun
  • 为什么零长度 VLA 是 UB?

    2011年标准明确规定 6 7 6 2 数组声明符 如果大小是一个不是整数常量表达式的表达式 如果它出现在 在函数原型范围内声明 它被视为被替换为 否则 每次评估时 其值都应大于零 每个实例的大小 变长数组类型的值在其生命周期内不会改变 其
  • Python在postgresql表中查找带有单引号符号的字符串

    我需要从 psql 表中查找包含多个单引号的字符串 我当前的解决方案是将单引号替换为双单引号 如下所示 sql query f SELECT exists SELECT 1 FROM table name WHERE my column m
  • Postgresql存储过程中基于会话的全局变量?

    在 Oracle 的 PL SQL 中 我可以使用包定义创建基于会话的全局变量 对于 Postgresql 的 PLpg SQL 这似乎是不可能的 因为没有包 只有独立的过程和函数 以下是 PL SQL 将 g spool key 声明为全
  • 如果数组包含一个或多个相同值,则合并数组

    我有一个数组数组 a 1 2 3 3 4 5 6 7 8 8 9 9 10 我想合并包含一个或多个相同值的所有数组 所以 a 1 2 3 4 5 6 7 8 9 10 我正在努力寻找一种简洁的方法来解决这个问题 有任何想法吗 我相信这是正确
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • Postgresql:SERIAL 在约束 INSERT 失败时递增

    有一个像这样的简单表结构 CREATE TABLE test id INT PRIMARY KEY sid SERIAL 我注意到如果我尝试插入一行但它未通过约束测试 即主键约束 SERIAL计数器无论如何都会增加 所以下一次成功插入 si

随机推荐

  • Pandas:与之前值的差异

    给定一个看起来像这样的 Pandas 数据框 GROUP VALUE MASK 1 5 false 2 10 false 2 20 false 1 7 true 3 17 false 3 18 false 1 100 false 1 200
  • Ktor - 静态内容路由

    我很想更好地了解 Ktor 如何处理静态内容的路由 我的静态文件夹 工作目录 中有以下层次结构 static index html some files static css directory js directory some file
  • 如何创建和访问会话.net core api?

    我需要在 api 中创建并访问会话 例如 我有一个名为 Login Profile 的 api 当登录 api 被调用时 我需要创建会话 并且我需要访问配置文件 api 中的会话 当会话被清除时 登录和配置文件 api 不允许用户访问 怎么
  • 检查 Swift 字典是否不包含任何值?

    所以我正在制作一个待办事项列表应用程序 我希望用户在所有购物项目都被删除时收到通知 我有一个字典 其中包含 String store 作为键和 String items 作为值 有没有一种快速方法来检查所有项目的数组是否为空 有一个简单的方
  • Android Drawable 内存泄漏

    我使用几个大型绘图 但不知道如何管理内存泄漏 我跟踪了应用程序的堆大小 它不会停止增长 与分配的内存一样 尤其是 字节数组 byte 类型 它只会增长且永不减少 在 Eclipse 上的 DDMS 堆视图中 我的应用程序由一个使用片段的活动
  • 如何从正在运行的 QThread 向启动它的 PyQt Gui 发送信号?

    我试图了解如何使用从 Qthread 发送回启动的 Gui 界面的信号 设置 我有一个进程 模拟 需要几乎无限期地运行 或至少运行很长一段时间 在运行时 它会执行各种计算 并且某些结果必须发送回GUI 它将实时适当地显示它们 我使用 PyQ
  • 如何使 Qt Creator 的调试器在 OS X 中显示 C++ 矢量的内容?

    我正在编写一个广泛使用向量的程序 并且是第一次在 Mac OS X 10 6 6 上使用 Qt Creator 2 0 1 进行开发 当我调试时 我可以在Locals and Watchers窗口 但是一旦我去扩展一个向量 在这种情况下类型
  • 了解MyISAM记录结构

    我试图了解 MyISAM 如何物理存储其记录以及在记录插入和删除记录后如何维护其结构 我已阅读以下链接 MyISAM 动态数据文件布局 MyISAM记录结构 我想确认一下我的理解是否正确 如果不对请指正 固定大小的记录 删除标记决定记录是否
  • 枚举和枚举的区别

    枚举有valueOf string 获取枚举常量的方法和中存在的相同类型的方法java lang Enum有名字的类valueOf enumClassName string 我发现两者都给出相同的输出 那还有什么其他的区别呢 如果没有区别那
  • 装饰器的类型注释

    这不是一个大问题 但我只是想知道解决这个问题的方法 由于我刚开始在Python上使用函数注释 所以我不熟悉它 我有一个问题如下 当你制作一个装饰器并想在其上添加注释时 你该怎么做 例如 如下代码 def decorator func Cal
  • NCO:使用 NCO ncks 从 NetCDF 文件中提取变量

    我试图通过输入以下命令从多变量 netcdf 文件中提取变量 ncks v ta temp1 nc out nc 然而 当我查看 out nc 标头时 所有变量仍然存在 temp1 nc 和 out nc 的标头如下 temp1 nc he
  • 在布局 xml 中设置 Magento 块模板

    在 Magento 的布局 xml 中设置块模板时遇到问题 我试图设置子块的模板 而不是整个页面布局 几乎所有文档都解释了如何设置布局模板 背景 我是updating我的自定义操作中的布局句柄 使用
  • GraphQL 查询在 Gatsby 页面中有效,但在类组件中无效

    有几个类似的问题 但除了页面文件夹中的组件之外 没有一个问题可以帮助我真正理解在 类 组件中使用 GraphQL 我的项目结构如下所示 src components aboutBody index js pages about js 我有一
  • 如何检测单个文件的文件系统大小限制

    有没有办法检测单个文件的文件系统大小限制 例如 fat 32 上的 4GB 它必须在 Windows 操作系统上运行 但最好是便携式解决方案 检测文件系统类型可能是一种解决方法 但我也不知道如何做到这一点 有人可以帮我吗 先感谢您 托比亚斯
  • Typescript 编译为单个文件

    我正在使用 TS 1 7 我正在尝试将我的项目编译为一个大文件 我将能够将其包含在我的 html 文件中 我的项目结构如下所示 build Build directory src source root main ts my Main fi
  • 将函数转换为使用尾递归——一项正式研究

    有没有人写过一篇正式论文描述一种 自动 将函数转换为尾递归的方法 我正在寻找大学级别的正式处理 包括限制 可以转换的函数类型 转换程序 以及 如果可能 正确性证明 Haskell 中的例子将是一个额外的好处 一种 自动 将函数转换为尾递归的
  • 在 iPhone 上“解压”文件

    我正在编写一个 iPhone 应用程序 它从网络服务器下载一个 tar gzip 压缩文件 然后需要取消存档该文件 以便可以将其复制到应用程序的 Documents 文件夹中 我使用 tar gzip 是因为我想在一个 HTTP 请求中下载
  • 在WebView Metro Style应用程序中加载本地html文件

    我在 Metro 风格应用程序的 WebView 控件中加载 html 文件时遇到了一些问题 我一直在互联网上搜索 发现无法使用 NavigateTo 方法加载本地 html 文件 我还发现有一种解决方法 您可以使用控件的 Navigate
  • 如何计算 Objective-C 中特定日期的一年中的第几天?

    这是我发现自己花了几个小时才弄清楚的事情 因此想与大家分享 问题是 如何确定特定日期是一年中的哪一天 例如当不是闰年时 1月15日是第15天 12月31日是第365天 尝试这个 NSCalendar gregorian NSCalendar
  • 复合类型数组的正确语法

    CREATE TYPE pencil count AS pencil color varchar 30 count integer CREATE TABLE pencils id serial pencils pencil count IN