You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中判断行是否包含默认值

如何在SELECT语句中筛选值为字段默认值的记录?

你提到在UPDATE语句里可以用SET some_column = DEFAULT来把字段设为默认值,但直接在SELECT的WHERE子句里写some_column = DEFAULT确实会报错:默认值不允许在此上下文中使用。

要实现筛选值等于字段默认值的记录,有两种常用方法:

  • 使用DEFAULT()函数(主流数据库如MySQL、PostgreSQL都支持)
    直接通过函数引用对应字段的默认值进行比较,语法如下:

    SELECT id FROM my_table
    WHERE some_column = DEFAULT(some_column);
    
  • 查询系统表获取默认值后手动比较
    如果你的数据库不支持DEFAULT()函数,可以先查询系统表拿到字段的默认值,再代入查询语句:
    以MySQL为例,先查默认值:

    SELECT column_default
    FROM information_schema.columns
    WHERE table_schema = '你的数据库名'
      AND table_name = 'my_table'
      AND column_name = 'some_column';
    

    得到默认值后,再写筛选语句:

    SELECT id FROM my_table
    WHERE some_column = '查询到的默认值';
    

    注意如果默认值是数值类型,不需要加单引号。

内容的提问来源于stack exchange,提问作者Bbrk24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:44:49