假设我有两列:一个表中的GroupName
,另一个表的Username
。如何约束这些列的值,以便添加到一列的任何值在两列中都是唯一的?最好以“不凌乱”的方式。
你提到的结构没有简单的方法。当然,有一种方法是通过实现触发器,但这很麻烦。
不过,另一种数据模型可以解决这个问题:
create table things (
thingsId int auto_increment primary key,
name text,
type text,
. . .
check (type in ('group', 'user')),
unique (name)
);
这将每种类型的东西放入单个列中,然后施加唯一的约束。
问题内容: 给定Postgres数据库中的以下三列:第一,第二,第三;我如何创建一个约束使得排列是唯一的? 例如,如果数据库中存在,则将其作为非唯一变量排除在外。 问题答案: 您可以使用hstore创建唯一索引: 更新 实际上
问题内容: 我有一个名为“ Person”的表名,下面是列名 我忘了约束。 现在,我尝试使用以下查询将“ 约束” 添加到名为的现有列中, 我收到语法错误…。 问题答案: 只需使用查询并将其添加到您现有的列定义中即可。例如: 请注意:使用查询时,您需要再次指定 完整的 列定义。例如,如果您的列具有值或列注释,则需要在语句中与数据类型和一起指定它,否则它将丢失。防止此类情况发生的最安全方法是从查询的输
我有一张桌子,不知怎的,同一个人进了我的桌子两次。现在,主键只是一个自动编号,但还有两个字段存在,我想强制它们是唯一的。 例如,这些字段是: 我只想要一张带有唯一PersonNumber和Active=1的唱片 (因此这两个字段的组合必须是唯一的) SQL server中现有表的最佳方式是什么?我可以这样做,如果其他任何人使用与现有值相同的值进行插入,则插入失败,因此我不必在应用程序代码中担心这一
问题内容: 我有三张桌子- 我想确保当它们自然连接时,product_id +文件名是唯一的。到目前为止,我拥有的最佳解决方案是将文件名添加到product_attachment表中,但是我想知道是否有避免这种情况的方法。 问题答案: 如果文件名列不是唯一的,则可以在表上添加自定义约束。请注意,这将在每次插入和更新时执行以下查询,这并不是理想的性能。
问题内容: 我有一个代表网站的Class和一个Class 。A 可以有多个。 我想允许所有站点上都存在相同的用户名,但每个站点上都只有一个。 我怎样才能做到这一点? 问题答案: 让用户拥有一个站点参考: 现在将约束添加到用户: 您还必须更改站点映射:
问题内容: 我想向表中添加一列,然后添加检查约束以确保其大于0。我似乎无法使它在oracle sl开发人员中运行。 错误报告-SQL错误:ORA-00904 ::无效的标识符00904。00000-“%s:无效的标识符” 问题答案: 语法中没有子句。只是。 这是 SQLFiddle 演示
我正在尝试用装饰图案做一些比萨饼(请耐心等待): 假设我有以下内容: 然后我有一个总装饰师: 以及装饰器的两种实现: 问题是我可以有重复的装饰者。 我如何改变这段代码的结构来添加一个“唯一性”约束——也就是说,每个装饰器最多只能出现一次?(我家披萨店不允许顾客拿双份香肠,抱歉!) 输出:基础披萨橄榄香肠香肠
问题内容: 我想向现有表中添加2个新列。 其中之一应具有默认值 0 (也应填写在现有行中)。 我尝试了以下语法: 但这会引发异常。我应该怎么写? 问题答案: 您可以使用此: 或这个: 更多:ALTER TABLE