标签: unique-constraint

实体框架4 - 用户名和电子邮件列的唯一问题

我的实体模型中有一个User实体:

http://i.stack.imgur.com/QXMYI.jpg

用户名和电子邮件应该是唯一的,但目前EF4不支持此功能.

所以我写了这段代码以确保唯一性:

public void CreateNewUser(string i_UserName, string i_Email)
{
    using (ModelContainer context = new ModelContainer())
    {
        User usr;

        usr = context.UserSet.Where(u => u.Username == i_UserName).SingleOrDefault();
        if (usr != null)
            throw new Exception("Username not unique");

        usr = context.UserSet.Where(u => u.Email == i_Email).SingleOrDefault();
        if (usr != null)
            throw new Exception("Email not unique");

        context.UserSet.AddObject(new User() { Username = i_UserName, Email = i_Email });
        context.SaveChanges();                               
    }
}
Run Code Online (Sandbox Code Playgroud)

如果这是正确的方法,我是否有办法在context.UserSet.AddObject()调用时自动执行此代码?或者确实存在更优雅的方式?

.net c# entity-framework unique-constraint entity-framework-4

2
推荐指数
1
解决办法
2085
查看次数

违反了不存在的Oracle数据库约束

我被分配到在具有两个表的应用程序的工作,让我们给他们打电话MY_TABLE_ONEMY_TABLE_TWO.当用户在表单中输入数据时,将输入数据MY_TABLE_ONE.完成此操作后,将触发数据库包,基本上执行以下操作:

DELETE FROM MY_TABLE_TWO;

INSERT INTO MY_TABLE_TWO
mto.COLUMN_ONE,
moto.COLUMN_TWO,
mott.COLUMN_THREE
FROM MY_TABLE_ONE mto, MY_OTHER_TABLE_ONE moto, MY_OTHER_TABLE_TWO mott
WHERE mto.OTHER_TABLE_ONE_UUID = moto.UUID
AND mto.OTHER_TABLE_TWO_UUID = mott.UUID;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这个包开始在插入时失败,并带有以下消息:

ORA-00001: unique constraint
(MY_SCHEMA.MY_TABLE_TWO_UK01) violated
ORA-06512: at "MY_SCHEMA.MY_PACKAGE", line 2
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)

查看约束MY_TABLE_TWO,没有MY_TABLE_TWO_UK01约束.但是有一个MY_TABLE_TWO_UK约束要求3个插入的列是唯一的.但是,如果我运行以下查询:

SELECT mto.COLUMN_ONE, moto.COLUMN_TWO, mott.COLUMN_THREE, COUNT(*) AS COUNTER
FROM MY_TABLE_ONE mto, MY_OTHER_TABLE_ONE moto, MY_OTHER_TABLE_TWO mott
WHERE mto.OTHER_TABLE_ONE_UUID = moto.UUID
AND mto.OTHER_TABLE_TWO_UUID = mott.UUID
GROUP BY mto.COLUMN_ONE, moto.COLUMN_TWO, mott.COLUMN_THREE …
Run Code Online (Sandbox Code Playgroud)

sql oracle unique-constraint

2
推荐指数
1
解决办法
2127
查看次数

没有排序顺序的SQL Server唯一约束

在SQL Server数据库中,我创建了一个唯一约束,以确保其中一个表只包含唯一的值对.

现在的问题是我得到的记录顺序是不同的.记录是按顺序排序的,但我希望它们按原始顺序排列,就像它们存在于表中一样,没有任何排序.

我已经到处检查过,但是找不到一种方法来创建一个没有排序顺序的唯一约束.这支持了吗?

c# database sql-server unique-constraint

2
推荐指数
1
解决办法
1351
查看次数

Servlet捕获唯一约束异常

我正在尝试将一些数据插入到名为的表中rmas.

表格式是

|rcode|rname|vcode|vanme
Run Code Online (Sandbox Code Playgroud)

在这里,我为rcode设置了主键.

当我用现有的rcode插入记录时,它会显示类似于ORA-0000-1唯一约束违反的内容.

如果我使用以下代码,即使出现其他错误,也会显示该消息.

catch(Exception e)
{
 //out.println("rcode already exists");
}
Run Code Online (Sandbox Code Playgroud)

所以,我想只捕获主键异常并显示为"rcode已存在".可能吗?如果是,那怎么样?

提前致谢

java oracle servlets exception unique-constraint

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

novalidate,错误ora-02299

有人可以帮我吗?

id | Name
--------
1  | aaa
2  | bbb
3  | aaa

>alter table arc add CONSTRAINT uk_arc UNIQUE (NAME) novalidate
 error :ora-02299: cannot validate( .uk_arc ) - duplicate keys found
Run Code Online (Sandbox Code Playgroud)

我使用novalidate忽略旧的重复并开始重新验证.

oracle unique-constraint

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

从flask_sqlalchemy导入UniqueConstraint

我想将UniqueConstraint与flask_sqlalchemy一起使用

不幸的是,这个进口声明:

from flask_sqlalchemy import SQLAlchemy, UniqueConstraint
Run Code Online (Sandbox Code Playgroud)

产生这个错误;

ImportError: cannot import name UniqueConstraint
Run Code Online (Sandbox Code Playgroud)

将UniqueConstraint导入flask_sqlalchemy应用程序的正确语法是什么?

谢谢!

sqlalchemy unique-constraint flask flask-sqlalchemy

2
推荐指数
1
解决办法
805
查看次数

PHP/MySQLi - 捕获唯一ID冲突

我想知道是否有一种简单的方法可以检查INSERT语句是否在执行INSERT时由于MySQL字段上的唯一索引而触发冲突.

例如,假设我正在向数据库添加用户,并且username是一个唯一索引:

$sql = new MySQLi(...);
$res = $sql->query('INSERT INTO `users` (`username`) VALUES ("john_galt");');
Run Code Online (Sandbox Code Playgroud)

名为的用户john_galt已存在,因此不会执行INSERT.但是,如何才能以最有意义的错误对用户做出最佳响应(即具有该用户名的用户已经存在;请选择一个唯一的名称.)?

我想到了一些事情,比如检查是否insert_id已设置 - 如果查询生成错误,则不应该这样做.但这个错误可能是任何事情.

类似地,我可以检查是否$sql->error不是空的,除了,这可能是任何东西 - 语法错误,或格式错误的值,或其他什么.显然,我不打算为最终用户打印出实际的MySQL错误.

我能想到的两个解决方案是:

  • 在运行INSERT之前,运行a SELECT TRUE FROM ``users`` WHERE ``username`` = "john_galt";以查看数据库中是否已存在用户名,但我觉得我在该字段中添加了一个唯一约束,这样我就不必这样做了 - 否则就会失败.
  • strpos($sql->error, 'Duplicate entry') === 0 - 看起来非常可怕.

有没有更好的方法来确定使用PHP的MySQLi类?

php mysql mysqli unique-constraint

2
推荐指数
1
解决办法
1873
查看次数

ORA-01452:无法创建独特的索引; 找到重复的密钥

这可以标记为重复但我在两个varchar字段上对Create Unqiue不区分大小写的约束时发现问题

我有一个表std_tbl,其中一列中有一些重复记录,如Column_One.

我在该列上创建了一个唯一约束

ALTER TABLE std_tbl            
ADD CONSTRAINT Unq_Column_One     
UNIQUE (Column_One) ENABLE NOVALIDATE;  
Run Code Online (Sandbox Code Playgroud)

我使用了ENABLE NOVALIDATE,因为我想保留现有的重复记录并验证重复的未来记录.

但是在这里,constaint不会查找区分大小写的单词,比如Column_One的值是'abcd',它允许'Abcd'和'ABCD'插入表中.

我希望此行为不区分大小写,以便在验证数据时不应查找大小写.为此我想出了这个解决方案.

CREATE UNIQUE INDEX Unq_Column_One_indx ON std_tbl (LOWER(Column_One));
Run Code Online (Sandbox Code Playgroud)

但它给了我错误:

ORA-01452:无法创建独特的索引; 找到重复的密钥

请帮帮我...

duplicate-data oracle10g unique-constraint

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

UNIQUE约束,其中NULL是一个有效值

PostgreSQL旅馆我想要一个多列UNIQUE约束,其中的一列可以完全为NULL。

到目前为止,我已经尝试过:

ALTER TABLE customexternalemail 
ADD CONSTRAINT customexternalemail_sp_emaildomain_unique 
    UNIQUE(serviceproviderid, emailprefix, emaildomainid);
Run Code Online (Sandbox Code Playgroud)

其中serviceprovideridemaildomainid是BIGINT,并且emailprefix是TEXT。emaildomainid是唯一允许使用NULL的列,也是我遇到问题的列。

基本上,我想只允许一个项目相匹配的组合serviceprovideridemailprefix以及emaildomainid,在那里emaildomainid可能是一个BIGINT值或NULL。当前(具有上述约束),如果emaildomainid为NULL,它将接受重复,但是如果emaildomainid不为NULL,则它必须是唯一的。

postgresql unique-constraint

2
推荐指数
1
解决办法
1010
查看次数

SQL Server:实现唯一约束,唯一的约束是可以重复的一个值

我有一个Student在组合键上具有唯一性的表[Name, Status]。我可以将特定学生标记为已删除,但稍后可以将其注册。基本上,我可以有多个具有相同名称和Deleted状态的条目。但是,如果我应用唯一约束,那么它将不允许我这样做。

因此,我创建了一个接受名称和状态的新函数。如果状态被删除,则返回true,如果不是已删除,则返回记录数。

内部检查中,我正在检查返回的值是否小于1,然后才允许重新插入。当我调用此函数时,它会显示正确的结果,但CHECK无法施加约束。

记录

ID   Name    Status
-------------------
1    Ram     Deleted
1    Ram     Deleted
2    Sham    Active
2    Sham    Deleted
Run Code Online (Sandbox Code Playgroud)

我可以插入记录

2 Sham Deleted
Run Code Online (Sandbox Code Playgroud)

但这不应该

2 Sham Active
Run Code Online (Sandbox Code Playgroud)

提前致谢

database sql-server constraints unique-constraint

2
推荐指数
1
解决办法
608
查看次数