标签: unique-constraint

如何为MySQL中的多列指定唯一约束?

我有一张桌子:

table votes (
    id,
    user,
    email,
    address,
    primary key(id),
);
Run Code Online (Sandbox Code Playgroud)

现在我想使列用户,电子邮件,地址唯一(一起).

我如何在MySql中执行此操作?

  • 当然这个例子只是......一个例子.所以请不要担心语义.

mysql composite-key unique-constraint database-table

835
推荐指数
9
解决办法
46万
查看次数

SQLite表约束 - 在多列上唯一

我可以在SQLite网站上找到关于此的语法"图表",但没有示例和我的代码崩溃.我在单个列上有其他具有唯一约束的表,但我想在两列上向表添加约束.这就是我所带来的SQLiteException,消息"语法错误".

CREATE TABLE name (column defs) 
UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE
Run Code Online (Sandbox Code Playgroud)

我这样做是基于以下几点:

表约束

为了清楚起见,我提供的链接上的文档说明CONTSTRAINT name应该在我的约束定义之前.

可能导致解决方案的一点是,无论我的括号列定义如何,调试器都会抱怨.

如果我放

...last_column_name last_col_datatype) CONSTRAINT ...
Run Code Online (Sandbox Code Playgroud)

错误接近"CONSTRAINT":语法错误

如果我放

...last_column_name last_col_datatype) UNIQUE ...
Run Code Online (Sandbox Code Playgroud)

错误接近"UNIQUE":语法错误

sqlite compound-key unique-constraint

172
推荐指数
3
解决办法
10万
查看次数

在PostgreSQL表已经创建之后,我可以为它添加一个UNIQUE约束吗?

我有下表:

 tickername | tickerbbname  | tickertype
------------+---------------+------------
 USDZAR     | USDZAR Curncy | C
 EURCZK     | EURCZK Curncy | C
 EURPLN     | EURPLN Curncy | C
 USDBRL     | USDBRL Curncy | C
 USDTRY     | USDTRY Curncy | C
 EURHUF     | EURHUF Curncy | C
 USDRUB     | USDRUB Curncy | C
Run Code Online (Sandbox Code Playgroud)

对于任何给定tickername/ tickerbbname对,我不希望任何列都有多个列.我已经创建了表并且其中包含大量数据(我已经确保它符合唯一标准).然而,随着它变得越来越大,错误的空间越来越大.

有没有办法UNIQUE在这一点上添加约束?

sql database postgresql indexing unique-constraint

165
推荐指数
4
解决办法
16万
查看次数

如何更改PostgreSQL表并使列唯一?

我在PostgreSQL中有一个表,其中的模式如下所示:

CREATE TABLE "foo_table" (
    "id" serial NOT NULL PRIMARY KEY,
    "permalink" varchar(200) NOT NULL,
    "text" varchar(512) NOT NULL,
    "timestamp" timestamp with time zone NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

现在,我希望通过ALTER-ing表使表中的固定链接唯一.任何人都可以帮我吗?

TIA

sql postgresql unique-constraint

145
推荐指数
4
解决办法
11万
查看次数

MySQL - 使现有的Field Unique

我有一个已经存在的表,其中一个字段应该是唯一的但不是.我只知道这一点,因为表中的条目与另一个已存在的条目具有相同的值,这导致了问题.

如何使此字段仅接受唯一值?

mysql unique-constraint

143
推荐指数
5
解决办法
17万
查看次数

实体框架代码中的唯一约束优先

是否可以使用流畅的语法或属性在属性上定义唯一约束?如果没有,有哪些解决方法?

我有一个带有主键的用户类,但我想确保电子邮件地址也是唯一的.这是否可以直接编辑数据库?

解决方案(基于马特的答案)

public class MyContext : DbContext {
    public DbSet<User> Users { get; set; }

    public override int SaveChanges() {
        foreach (var item in ChangeTracker.Entries<IModel>())
            item.Entity.Modified = DateTime.Now;

        return base.SaveChanges();
    }

    public class Initializer : IDatabaseInitializer<MyContext> {
        public void InitializeDatabase(MyContext context) {
            if (context.Database.Exists() && !context.Database.CompatibleWithModel(false))
                context.Database.Delete();

            if (!context.Database.Exists()) {
                context.Database.Create();
                context.Database.ExecuteSqlCommand("alter table Users add constraint UniqueUserEmail unique (Email)");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

entity-framework unique-constraint code-first

125
推荐指数
6
解决办法
6万
查看次数

唯一约束的命名约定

命名约定很重要,主键和外键具有常用和明显的约定(PK_TableFK_Table_ReferencedTable分别).IX_Table_Column索引的命名也是相当标准的.

UNIQUE约束怎么样?这个约束是否有一个普遍接受的命名约定?我见过UK_TableName_Column,UQ_TableName_Column有人推荐AX_TableName_Column- 我不知道它来自哪里.

我经常使用,UQ但我并不特别喜欢它,我不喜欢捍卫我选择使用它来反对UK倡导者.

我只想看看是否就最流行的命名达成了共识,或者是为什么一个人比其他人更有意义的一个很好的推理.

sql sql-server naming-conventions unique-constraint

117
推荐指数
3
解决办法
6万
查看次数

如何在列(SQL Server 2008 R2)上创建唯一约束?

我有SQL Server 2008 R2,我想设置一个唯一的列.

似乎有两种方法可以做到这一点:"唯一索引"和"唯一约束".尽管大多数人都推荐使用唯一约束,但它们与我的理解并没有太大差别,因为您也会自动获得索引.

如何创建唯一约束?

ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name)
Run Code Online (Sandbox Code Playgroud)

有没有办法通过SQL Server Management Studio创建唯一约束?

sql sql-server unique-constraint sql-server-2008

96
推荐指数
4
解决办法
16万
查看次数

如何删除重复的条目?

我必须为现有表添加唯一约束.这很好,除了表已经有数百万行,并且许多行违反了我需要添加的唯一约束.

删除有问题的行的最快方法是什么?我有一个SQL语句,它找到重复项并删除它们,但它需要永远运行.有没有其他方法可以解决这个问题?也许备份表,然后在添加约束后恢复?

sql postgresql duplicate-removal unique-constraint sql-delete

93
推荐指数
7
解决办法
9万
查看次数

Postgresql:有条件的唯一约束

我想添加一个约束,该约束仅在表的一部分中强制列的唯一性.

ALTER TABLE stop ADD CONSTRAINT myc UNIQUE (col_a) WHERE (col_b is null);
Run Code Online (Sandbox Code Playgroud)

WHERE上面的部分是一厢情愿的想法.

这样做的任何方式?或者我应该回到关系绘图板?

postgresql constraints unique-constraint

87
推荐指数
2
解决办法
3万
查看次数