空值并不唯一

2024-04-15

我在 postgres 上有这样的行:

 name | address | college 

 john | rome    |
 john | rome    |
 max  | tokyo   |

我创建一个这样的表:

create test (
name    varchar(10),
address varchar(20),
college varchar(20),
constraint test_uq unique (name,address,college);

如何使空值变得唯一,因此输出可以是这样的:

 name | address | college 

 john | rome    |
 max  | tokyo   |

Postgres 文档claims http://www.postgresql.org/docs/8.3/static/ddl-constraints.html此行为符合 SQL 标准:

一般来说,当存在两个或多个时,就会违反唯一约束 表中的行,其中包含的所有列的值 约束条件相等。但是,不考虑两个空值 在这个比较中相等。这意味着即使存在独特的 约束可以存储包含空值的重复行 至少一个受约束列中的值。这种行为 符合SQL标准[.]

一种可能性是重新考虑您的模式(老实说,这是对name+address+college在你的例子中没有多大意义)。

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

空值并不唯一 的相关文章

  • 密码恢复:如何解密 md5 加密的密码? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以解密 md5 哈希值 https stackoverflow com questions 1240852 is it possible to decrypt md5 hashes 在我的网站中
  • 如何创建 TimescaleDB Hypertable,并在非唯一时间戳上进行时间分区?

    我刚刚开始使用 TimescaleDB 想要在包含事件的表上创建一个超表 最初我想到遵循以下常规模式 CREATE TABLE event id serial PRIMARY KEY ts timestamp with time zone
  • string_agg 没有函数与给定名称匹配

    我有关系数据库并想使用string agg 因为它似乎适合我的需要 I want product id quiz id 1 1 6 2 2 7 3 3 8 4 4 这是我的数据库 select quiz id product id last
  • 带汇总总计和小计

    我有一个脚本可以生成几乎已经存在的结果集 我正在尝试获取小计和总计 我在年份栏中得到了小计 在最后得到了总计 我的目标是让最终结果显示 总计 而不是小计 请注意 由于汇总函数 我的最后一行 位置 也返回为空 SELECT YEAR COUN
  • 如何在 Postgres 中对包含语义版本的列进行排序

    有没有办法高效存储https semver org https semver orgPostgres 中的版本字符串 然后执行最新查询 例如假设列的值为 1 1 0 1 0 0 1 2 0 1 0 1 rc 1 B001 我想排序并获取最新
  • 为什么 Map.of 不允许空键和空值?

    在 Java 9 中 引入了新的工厂方法List Set and Map接口 这些方法允许使用一行中的值快速实例化 Map 对象 现在 如果我们考虑 Map
  • GQL中有OR运算符吗?

    我不知道这里是否有人问过这个问题 我看到了几个关于 like 运算符的问题 但我不确定这是否是我正在寻找的 抱歉我在这方面是菜鸟 但我正在从 MySQL 迁移到 Google App Engine 并且想知道 GQL 中是否有类似于 MyS
  • 表名或列名不能以数字开头?

    我尝试创建名为15909434 user语法如下 CREATE TABLE 15909434 user 这当然会产生错误 然后 在我尝试用谷歌进行一些研究后 我发现了一篇很好的文章here http www informit com art
  • Erlang 更好地支持哪种数据库(SQL)?

    你建议我在 Erlang 中使用什么 MySQL 还是 Postgres 哪个数据库有更好 更成熟 更稳定 更快 的 Erlang 驱动程序 The Erlang ODBC 接口 http erlang org doc apps odbc
  • 如何通过csv文件仅更新sql表的一列

    我有一个 csv 文件包含一些数据 在我的 Sql 数据库中 我有一个具有多个列名的表 现在我只想通过 csv 文件更新一列 谢谢 你可以这样尝试 Import the csv file to a temp table Update you
  • 在 Postgres 9.0+ 中使用 PL/pgSQL 循环表

    我想循环遍历所有表以计算每个表中的行数 以下查询给我一个错误 DO DECLARE tables CURSOR FOR SELECT tablename FROM pg tables WHERE tablename NOT LIKE pg
  • Oracle SQL:从表中选择数据和分区名称并截断分区

    这是一个由两部分组成的问题 1 是否可以根据数据所在的分区使用 select 语句检索其名称ROWID或者其他一些标识符 eg SELECT DATA ID CATEGORY VALUE PARTITION NAME FROM MYTABL
  • C# 数据库包装设计

    我正在为 C 设计一个数据库包装器 以下是我有两个选择 选项A class DBWrapper IDisposable private SqlConnection sqlConn public DBWrapper sqlConn new S
  • C 中的 NULL 是否需要/定义为零?

    在我的 GCC 测试程序中 NULL 似乎为零 但维基百科说NULL只需要指向不可寻址的内存 有编译器做吗NULL非零 我很好奇是否if ptr NULL 是比更好的练习if ptr NULL is guaranteed to be zer
  • 数据库表可以没有主键吗?

    谁能告诉我关系数据库 例如MySQL SQL SERVER 中的表是否可以没有主键 例如 我可以有桌子day temperature 我注册的地方temperature and time 我不明白为什么要为这样的表设置主键 从技术上讲 您可
  • 一种父子关系级联软删除的方法

    我有一个简单的架构 其中使用软删除 这就是它的设计方式并且无法更改 有两个表参与该架构 Company id is deleted and Employee id company id is deleted where company id
  • 如何使用过程填充数据库

    我有大约 15 个不同的表 其中填充了不同的数据和不同的实体关系 我需要创建一个脚本 用这些表的内容填充我的数据库 脚本完成后 我使用 sqlplus 在 cmd 中运行它 然后使用 START文件路径 我有两个不同的 sql 文件 一个名
  • 如何从 tcl 列表中删除空元素

    你好 我有以下清单 设置 qprList 12345 12345
  • Postgres 检查文本数组中的约束以确保值的有效性

    我想创建类似的东西 CHECK ALL scopes IN read write delete update scopes这是表中的一个字段text 我想确保该数组中的所有值都是上面的值之一 对此有何意见 是否有可能通过以下方式获取这些值S
  • SQLite3 数据库中的派生字段

    各位晚上好 今天想问一个关于SQLite3中的派生字段 也称为计算字段 的问题 利用存储在我的数据库中的两个值 重量 和 距离 我知道可以利用它们来执行计算 以利用需要这两个值的公式返回我想要的值 但是我想知道是否有一种方法可以通过 SQL

随机推荐

  • C# 有没有办法设置控制台应用程序的滚动位置

    你好 我已经在谷歌上搜索这个问题很长一段时间了 但找不到任何关于我将如何做这件事的结果 我目前有一个选择菜单 用户可以从中选择选项列表 该菜单从顶部开始 但每次刷新列表时窗口都会显示最后一个选项 我想要做的就是能够在窗口中显示带有所选选项的
  • 如何将 bash 脚本变量与 sed 一起使用[重复]

    这个问题在这里已经有答案了 我执行以下 bash 脚本 bin bash version 1 echo version sed s version number version template txt gt readme txt 我希望用
  • 设置今日扩展小工具的通知

    我正在创建一个简单的计时器应用程序 它将重点关注今天的扩展小部件功能 用户可以通过点击从此处启动计时器 唯一的问题是我需要从小部件设置本地通知 我尝试使用 UIApplicaton sharedApplication ScheduleLoc
  • 按组填写缺失日期

    我有一个数据集 如下所示 shop id item id time value 150 1 2015 07 10 3 150 1 2015 07 11 5 150 1 2015 07 13 2 150 2 2015 07 10 15 150
  • 使用 JUnit 中的 Blobstore

    我正在尝试测试一些使用 Blobstore API 的代码 但我并不真正了解如何将一些文件放入 Blobstore 中 以下内容不起作用 private BlobKey createBlob String path throws Excep
  • 如何使用 HttpClient 解决 .Net4.0 与 .Net4.5 中 Uri 和编码 URL 的差异

    Uri Net4 0 与 Net4 5 中的行为不同 var u new Uri http localhost 5984 mycouchtests pri test 2F1 Console WriteLine u OriginalStrin
  • Postgres 动态创建序列

    我正在编写一个应用程序 其中有多个用户 用户可以在应用程序内上传报告 目前 我有一个 报告 表 其中包含所有提交的报告 其中有一个 id 字段 该字段是表上的序列主键 我指定的要求是 用户需要能够指定其报告开始计数的前缀和数字 例如 用户应
  • 每页记录数允许用户选择 - codeigniter 分页

    我有有效的分页功能 我已将限制设置为每页 5 条记录 但我希望用户能够根据需要进行更改 问题是我不知道该怎么做 在视图中 我创建了下拉菜单 因此用户可以选择他想要每页查看多少条记录 ul class dropdown menu li a h
  • android 权限 - CHANGE_COMPONENT_ENABLED_STATE

    我需要在我的代码中使用 android permission CHANGE COMPONENT ENABLED STATE 权限 因为我需要更新我的项目的另一个 apk 的组件 但它似乎并不真正适合我 这是我的代码
  • 在带有或不带有命名空间的 中使用类型

    在 C 11 中 我可以选择是否要使用带或不带命名空间 std 中定义的类型 至少我的编译器 g 4 7 接受这两种变体 我的问题是 使用 cstdint 中的 typedef 的推荐方法是什么 有或没有命名空间 有什么优点或缺点 或者这只
  • 如何获取两个 JavaScript 对象图之间的差异列表?

    我希望能够获得两个 JavaScript 对象图之间所有差异的列表 以及发生增量的属性名称和值 就其价值而言 这些对象通常以 JSON 形式从服务器检索 并且通常不超过几层 即 它可能是本身具有数据的对象数组 然后是包含其他数据对象的数组
  • git - 当输出重定向到文件时,git show 在二进制文件上使用是否安全?

    我读到可以从 Git 中的特定修订版检索单个文件 如这个问题中的回答 如何从 Git 中的特定修订版检索单个文件 https stackoverflow com questions 610208 how to retrieve a sing
  • 我可以通过编程方式选择我的线程应在多核 CPU 的哪个核心上运行吗?

    还是由操作系统控制 我听说 Google 的新 Go 语言具有内置功能 可供程序员进行精细操作 还是我理解错了 对于 Linux 操作系统 sched setaffinity是你的答案 从 Linux 内核 2 5 8 开始支持它 Name
  • Alamofire 图像:在 af_setImageWithURL() 之后从 AutoPurgingImageCache 中获取图像

    我在我的项目中使用 AlamofireImage 我用someImageView af setImageWithURL url a lot 然而 在某些时候我需要从 imageCache 手动获取图像 因为我不想将其应用到 UIImageV
  • 如何将逻辑回归模型获得的系数映射到pyspark中的特征名称

    我使用 databricks 列出的管道流构建了一个逻辑回归模型 https docs databricks com spark latest mllib binary classification mllib pipelines html
  • 使用 Plotly 渲染 MATLAB 面片 Fig2plotly()

    问题 当尝试导出使用patchMATLAB 中的命令为fig2plotly 最终输出缺少指定的面部颜色 也许演示会有所帮助 采用以下顶点和面来定义立方体 摘自 MATLAB 文档 vert 0 0 0 1 0 0 1 1 0 0 1 0 0
  • C++中如何检查数据类型?

    我对 C 相当陌生 我主要使用 python 我正在尝试检查存储在我正在处理的对象中的值的变量类型 我记得Python中有一个命令isinstance我可以使用它作为运行某些命令的条件 例如如果下一个值是字符串 则执行 A 如果是 int
  • Gradle 没有选择 Cucumber-jvm

    我正在尝试从 Gradle 运行 Cucumber jvm 但是 无论我做什么 我都无法让这些功能实际运行 当其他 JUnit 测试运行时 它们总是被跳过 我的特点在src test resources我有一个 JUnit 测试src te
  • Windows Phone 8 的内存使用限制

    Windows Phone 8 应用程序的应用程序内存使用限制是多少 我需要三种不同可用设备的内存限制 如 720p WXVGA 等 WP8 内存上限的 zen 具有三个方面 默认基线 150MB 扩展内存 180MB 和低内存设备选择退出
  • 空值并不唯一

    我在 postgres 上有这样的行 name address college john rome john rome max tokyo 我创建一个这样的表 create test name varchar 10 address varc