有条件地将列设置为 Postgres 中的默认值

2024-01-31

我有一个 PostgreSQL 8.4 表,其中有一个自动递增但可为空的整数列。我想更新一些列值,如果该列为 NULL,则将其设置为其默认值(这将是从序列自动生成的整数),but无论哪种情况我都想返回它的值。所以我想要这样的东西:

UPDATE mytable
SET incident_id = COALESCE(incident_id, DEFAULT), other = 'somethingelse'
WHERE ...
RETURNING incident_id

不幸的是,这不起作用 - 似乎DEFAULT是特殊的,不能是表达式的一部分。最好的方法是什么?


用这个:

update mytable set a = 
    coalesce(incidentid, 
    (
     select column_default::int 
     from information_schema.columns 
     where table_schema = 'public' 
     and table_name = 'mytable' and column_name = 'incidentid')
    )

如果您的 Incidentid 是整数类型,请对 column_default 进行类型转换

[EDIT]

create or replace function get_default_value(_table_name text,_column_name text) 
returns text
as
$$
declare r record;
s text;
begin

    s = 'SELECT ' || coalesce(

    (select column_default 
    from information_schema.columns 
    where table_schema = 'public' 
    and table_name = _table_name and column_name = _column_name)

    , 'NULL') || ' as v';

    EXECUTE s into r;
    return r.v;
end;
$$
language 'plpgsql';

to use:

update mytable set a = 
    coalesce(incidentid, get_default_value('mytable','a')::int )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有条件地将列设置为 Postgres 中的默认值 的相关文章

  • SQLite SQL 查询出现问题[重复]

    这个问题在这里已经有答案了 我正在尝试在 SQLite 3 中运行以下查询 SELECT DISTANCE latitude longitude AS distance FROM country WHERE id NOT LIKE HAVI
  • 将用户定义的表类型从 VBA 传递到 SQL

    我的任务是创建一个 Excel 电子表格作为 SQL 数据库的前端 以及一些对数据执行复杂计算的 C 我的老板想要前端作为电子表格 而计算对于 VBA 来说似乎太复杂了 目前 检索数据集的存储过程运行良好 然后 用户将在 Excel 中编辑
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • Rails 中 WHERE 子句中的 ALL 运算符

    关联关系如下图所示 InstructorStudent has many fees Fee belongs to instructor student 我想要获得在所有给定数组中具有每月详细信息的指导学生 如果其中任何一个中不存在每月详细信
  • 查询嵌套查询结果中两列的位置

    我正在编写这样的查询 select from myTable where X in select X from Y and XX in select X from Y X 列和 XX 列的值必须位于同一查询的结果中 select X fro
  • 连接 3 三张表

    我有这个图表应该可以解释我的情况 我需要一些关于连接 3 个表的帮助 我不知道如何做这种事情 因此 我可以通过执行以下操作来经历一段检索记录的 while 循环 img src alt Album AlbumID 使用内部联接 http w
  • 访问数据库 LIMIT 关键字

    我试图让我的页面列表功能在 ASP 中与 Access 数据库一起工作 但我不知道 Microsoft SQL 中 LIMIT 的替代方案 我已经尝试过 TOP 但这似乎不起作用 这是 MySQL 中使用的语句 SELECT FROM cu
  • 如何在审计触发器中使用system_user但仍使用连接池?

    我想做以下两件事 在我的数据库表上使用审计触发器来识别哪个用户更新了什么 使用连接池来提高性能 对于 1 我在数据库触发器中使用 system user 来识别进行更改的用户 但这阻止我执行需要通用连接字符串的 2 有没有一种方法可以让我充
  • Allen Browne 的 ConcatRelated() 错误 3061:参数太少

    我正在尝试创建给定仓库的产品列表 Allen Browne 的 ConcatRelated 函数似乎是在链接变量相同时创建列表的经过验证的正确方法 但我无法让它工作 我已将我的信息分解为单个查询 qry Products SELECT qr
  • 使用 psycopg2 转义 Postgres 的 SQL“LIKE”值

    psycopg2 是否有转义 a 值的函数LIKEPostgres 的操作数 例如 我可能想匹配以字符串 20 of all 开头的字符串 所以我想写这样的内容 sql WHERE LIKE myvalue s cursor fetchal
  • 从java运行sqlplus脚本的简单方法

    我有包含 sqlplus 特定脚本的 sql 文件 它包括 或 作为语句终止符 执行存储过程的 EXEC 等 我需要从 java jdbc 执行此脚本 而不需要 sqlplus sql ant任务 maven sql插件无法处理不同的终止符
  • 如何创建包含多列MD5的GENERATED列?

    我尝试在 PostgreSQL 14 3 中添加下表 CREATE TABLE client cache id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY request VARCHAR
  • 不能简单地使用 PostgreSQL 表名(“关系不存在”)

    我正在尝试运行以下 PHP 脚本来执行简单的数据库查询 db host localhost db name showfinder username user password password dbconn pg connect host
  • 什么是动态 SQL 查询?何时需要使用动态 SQL 查询?

    什么是动态 SQL 查询 何时需要使用动态 SQL 查询 我正在使用 SQL Server 2005 这里有几篇文章 动态SQL简介 http www sqlteam com article introduction to dynamic
  • 为什么要为字符变化类型指定长度

    参考 Postgres 文档字符类型 http www postgresql org docs current static datatype character html 我不清楚指定字符变化 varchar 类型的长度 假设 字符串的长
  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • 记录 Google Cloud SQL PostgreSQL 实例上的慢速查询

    我工作的公司使用 Google Cloud SQL 来管理生产中的 SQL 数据库 我们遇到了性能问题 我认为查看 监控高于特定阈值 例如 250 毫秒 的所有查询是一个好主意 除其他外 通过查看PostgreSQL 文档 https ww
  • 如何在postgresql中编写有关最大行数的约束?

    我认为这是一个很常见的问题 我有一张桌子user id INT 和一张桌子photo id BIGINT owner INT 所有者是一个参考user id 我想向表照片添加一个约束 以防止每个用户将超过 10 张照片输入数据库 写这个的最
  • 火鸟删除速度很慢

    我正在做这个简单的交易 DELETE FROM ominve01 WHERE CVE OBS IN SELECT CVE OBS FROM minve01 M WHERE M FECHA DOCU lt 31 12 2010 OR FECH

随机推荐

  • Rails、Ruby 1.9.3p0 和 mysql gem

    我正在运行 CentOS6 并从源代码安装了 Ruby 以及 Rails 和其他一些人员 ruby v ruby 1 9 3p0 2011 10 30 revision 33570 x86 64 linux rails v Rails 3
  • 什么时候应该使用封装? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在完成 Sun Oracle 的踪迹 http docs oracle com javase tutorial java TOC html
  • 哈希映射内存开销

    我正在研究哈希图的内部结构 其中我遇到了以下详细信息 实现是一个 HashMap Entry 对象数组 每个 HashMap Entry 包含 int KeyHash 下一个对象 对象键 对象值 默认容量为 16 个条目 空大小为 128
  • 如何检测用户是否离开了我的应用程序?

    我正在开发一个 Android 应用程序 我想检测用户何时通过单击 后退 按钮或 主页 按钮退出我的应用程序 另外 像这样的事件onInit 在我的场景中很有用 因为我只想拥有MyIn t行动首先开始 onDestroy 直到其他应用程序需
  • 选择正确的 IOS XML 解析器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 iPhone 有上百万种不同的 XML 解析器 我有一个中等大小的 XML 文件 其中包含大量重复标签
  • Web API 可空必需属性需要 DataMember 属性

    我在 Web API Post 操作上收到以下虚拟机 public class ViewModel public string Name get set Required public int Street get set 当我发帖时 出现
  • 在 Rails 3 中执行任务时显示加载屏幕

    如果我的 创建 操作需要一段时间才能加载 由于执行 API 调用然后进行计算 向用户显示 加载屏幕 的最佳方式是什么而这个任务是在后台执行的 编写一些 AJAX 魔法 在激活时显示加载图像 并在 AJAX 调用完成时隐藏它 如果你不想使用
  • axios有能力检测重定向吗?

    The Fetch API响应接口 https developer mozilla org en US docs Web API Response has a 只读标志 https developer mozilla org en US d
  • 同时录制和播放音频

    任何人都可以帮助我在 iPhone 上同时录制和播放音频 您可以使用 AVFoundation 框架 它有AVAudioPlayer来播放音频文件和AVAudioRecorder来录制 您必须记住 录音机只能使用麦克风进行录音 因此 同时播
  • Python中正态分布的曲线拟合

    我想计算正态分布数据的百分位数 所以我首先将数据拟合到正态分布 下面是示例 from scipy stats import norm import numpy as np from scipy optimize import curve f
  • Django:无法从另一个应用程序导入模型

    我希望就我遇到的这个问题寻求一些帮助 我仍在学习 Django 和 Python 并遇到了这个我无法找到答案的特定问题 我创建了一个名为 新闻 的新应用程序 并为该应用程序设置了模型 使用管理界面我创建了一些数据 从我的 Pages 应用程
  • Go viper .yaml 值环境变量覆盖

    我正在努力拥有application yamlgo 应用程序中的文件包含 RMQ HOST 我想用环境变量覆盖的值 In application yaml我有 rmq test host RMQ HOST port RMQ PORT 在我的
  • 更改用户登录名后认证错误

    我们有一位最近更改了姓名的用户 假设旧用户名是 old name 新用户名是 new name 在 AD 中编辑详细信息并使用新用户名注销 登录后 我们的 ASP NET 应用程序显示旧名称 纯 ASP NET 无 MVC 使用 Windo
  • 如何在 obj-C 的 C 函数中向自己发送消息?

    我有一个 C 函数 音频队列服务中的回调函数 我想向自己发送消息 怎么做 如果我输入 self message 则会出现错误 Use of undeclared identifier self 您不会在实时回调中执行 objc 消息 例如音
  • Guzzle HTTP 请求从 POST 转换为 GET

    当我尝试向外部 API 发布帖子时 发生了一件非常奇怪的事情 我尝试向 URL 发出 POST 请求 但 Guzzle 发出 GET 请求 这是对此 API 的合法操作 但返回不同的内容 这是代码 request this gt clien
  • 在 ember 中如何在 Ember.Object.extend 上创建一个可以访问 json 服务的类方法

    很抱歉问这样一个简单的问题 但我正在考虑从 jQuery 迁移到 Ember 并试图在不使用 ember data 的情况下找出调用 响应 json 我的一个问题是人们如何建议使用类方法 举例来说 我有一个像这样的帖子对象 Hex Post
  • ARM ELF 对象内的函数大小不正确

    readelf 目标文件的输出 Symbol table symtab contains 15 entries Num Value Size Type Bind Vis Ndx Name 0 00000000 0 NOTYPE LOCAL
  • 通过CSS改变PNG图像的颜色?

    给定一个显示白色简单形状的透明 PNG 是否有可能通过 CSS 以某种方式改变它的颜色 某种覆盖或什么不是 您可以使用过滤器 webkit filter and filter 过滤器对于浏览器来说相对较新 但根据以下 CanIUse 表 超
  • java.net.URLEncoder.encode(String) 已弃用,我应该使用什么代替?

    我在使用时收到以下警告java net URLEncoder encode warning deprecation encode java lang String in java net URLEncoder has been deprec
  • 有条件地将列设置为 Postgres 中的默认值

    我有一个 PostgreSQL 8 4 表 其中有一个自动递增但可为空的整数列 我想更新一些列值 如果该列为 NULL 则将其设置为其默认值 这将是从序列自动生成的整数 but无论哪种情况我都想返回它的值 所以我想要这样的东西 UPDATE