标签: unique-constraint

SQL Server 2008 中以尾随空格作为主键的 Varchar

是否可以将 varchar 列作为具有“a”和“a”等值的主键,在 MS SQL Server 2008 中总是给出此错误“违反主键约束”。在 Oracle 中不会给出任何错误。顺便说一句,我没有以这种方式实现,我只是尝试将数据从 oracle 迁移到 sql server。

问候

sql-server primary-key unique-key unique-constraint sql-server-2008

4
推荐指数
1
解决办法
5114
查看次数

根据列值创建多列约束

我正在尝试在oracle数据库上创建一个约束,该约束说明如下:

如果column1 == someValue那么所有条目的组合column2column3必须是唯一的column1 == someValue

我熟悉unique和check约束的概念,并且我尝试用这些结构表达约束.但是,我似乎找不到包含条件的方法.这就是为什么我想知道它是否可能.

我想要创建约束的表是由Hibernate映射以下类层次结构创建的(为简洁起见,大多数属性都被省略):

class MyClass {
     String name;
     MyClass parent;
}

class MySubClass extends MyClass {
     String businessValue;
}
Run Code Online (Sandbox Code Playgroud)

使用单个表策略映射类,并为每种类型使用不同的鉴别器值.客户要求对于MySubClass名称和父组合的所有实例必须是唯一的(column1将是鉴别器值).通过表约束在父类上强制执行这样的约束会很容易.但是,该约束必须仅适用于MySubClass.

在使用Hibernate Validator等框架将数据输入数据库之前,可以验证数据.但由于验证无论如何都需要数据库访问,因此数据库约束似乎是更节省性能的方法.

oracle hibernate constraints unique-constraint

4
推荐指数
1
解决办法
516
查看次数

如何使用另一个表中的列添加唯一约束?

我在 SQL Server 2008 R2 中有 3 个表,如下所示:

数据库模型

一个公司可能有许多 LSP。一个 LSP 可能有许多 SERVICE。

而且我需要确保 SERVICE_CODE 唯一标识公司内的服务记录。换句话说,COMPANY_ID + SERVICE_CODE 应该在整个系统中唯一标识一条SERVICE 记录。

例如:COMPANY-A 可能没有具有相同 SERVICE_CODE 的 2 个服务(具有 2 个不同的 SERVICE_ID)。但是 COMPANY-A 和 COMPANY-B 可能都有 2 个独立的 SERVICES(同样,具有不同的 SERVICE_ID),SERVICE_CODE = "PREMIUM"。

我需要这样的东西:

alter table "SERVICE" 
add constraint "SERVICE_Index01" 
unique ("COMPANY_ID", "SERVICE_CODE") 
Run Code Online (Sandbox Code Playgroud)

但是(显然)这会失败,因为 COMPANY_ID 列不在 SERVICE 表中。

在此先感谢您的帮助。

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

4
推荐指数
1
解决办法
2584
查看次数

SaveOrUpdate 中的唯一约束违反错误

我有一个名为 customer 的休眠实体,其中包含有关客户的信息。在我的方法中,我将客户详细信息作为需要插入数据库的参数。因此,要删除重复条目,我会检查该客户是否已存在于 db 中。但问题是,如果在同一时刻使用相同的客户信息对相同的方法进行两次调用,那么我会收到违反约束的错误。我认为 saveOrupdate() 会解决这个问题,但它没有。有人可以为这种情况提出解决方案。

java multithreading hibernate unique-constraint

4
推荐指数
1
解决办法
5245
查看次数

触发错误时回滚事务

我正在尝试检查将要插入系统的房间在该日期是否已经租用。我已经考虑过计算与房间号和日期匹配的行,然后回滚事务。但是我收到以下错误,即使我已经更改了代码以引发用户定义的异常:

ERROR:  cannot begin/end transactions in PL/pgSQL
HINT: Use a BEGIN block with an EXCEPTION clause instead.
CONTEXT: PL/pgSQL function "checkRoom"() line 17 at SQL statement
Run Code Online (Sandbox Code Playgroud)
CREATE OR REPLACE FUNCTION "checkRoom"() RETURNS TRIGGER AS
$BODY$
DECLARE 
    counter integer;
  BEGIN
    SELECT COUNT("num_sesion")
    FROM "Sesion"
    INTO counter
    WHERE "Room_Name"=NEW."Room_Name" AND "Date"=NEW."Date";

    IF (counter> 0) THEN -- Probably counter>1 as it's triggered after the transaction..
        raise notice 'THERE'S A ROOM ALREADY!!';
        raise exception 'The room is rented at that date';
    END IF;
    RETURN …
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers plpgsql unique-constraint

4
推荐指数
2
解决办法
9391
查看次数

Django:制作一个不是主键唯一的列

我有一个codes带有相应助记符的数字列表,names我想为它们创建一个 Django 模型,因此它们names是主键,但还有一个约束,即code列中的值是唯一的。

我尝试的是以下内容:

class Constant(models.Model):
    name = models.CharField(max_length=70)
    name.primary_key = True
    code = models.IntegerField()
    description = models.CharField(max_length=100)

    unique_together = (("code",),)
Run Code Online (Sandbox Code Playgroud)

我意识到这unique_together是为了在一组列中强制执行值的唯一性,但我想我会尝试只使用一个并且它似乎有效,即执行时没有错误python manage.py syncdb,但它并没有真正强制执行我想要的约束:

mysql> describe constant;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| name        | varchar(70)  | NO   | PRI |         |       |
| code        | int(11)      | NO   |     |         |       |
| description | varchar(100) | …
Run Code Online (Sandbox Code Playgroud)

python django unique-constraint

4
推荐指数
1
解决办法
1670
查看次数

如何将空字符串设为空值以允许可选字段中出现重复的空字符串?

我有一个可选的电子邮件字段。正则表达式可以很好地接受空字符串 (^$),但现在的问题是空字符串被视为唯一条目。它只允许一个用户在不输入电子邮件地址的情况下进行注册。我知道我必须将其设置为 null,但不确定如何设置。

像这样的东西:

关键“users_email_unique”空字段的重复条目“”

错误:关键“电子邮件”的重复条目“”

sql postgresql unique-key unique-constraint

4
推荐指数
2
解决办法
1683
查看次数

陷阱特定的命名唯一约束异常

我想在 plpgsql 函数中捕获一个异常,如果它违反特定的命名唯一约束,并且对于所有其他情况向客户端抛出原始错误,包括其他唯一约束(匹配不同的名称)。

我可以在手册中看到如何使用 对所有独特的约束违规执行此操作EXCEPTION WHEN unique_violation THEN,但是我如何仅针对特定的约束执行此操作?

postgresql error-handling plpgsql unique-constraint

4
推荐指数
1
解决办法
1315
查看次数

Django 模型在两种方式下都是独一无二的

关于这个主题已经有很多问题,但不是我正在寻找的问题。

我有这个Model

class Options(TimeStampedModel)
    option_1 = models.CharField(max_length=64)
    option_2 = models.CharField(max_length=64)

    class Meta:
        unique_together = ('option_1', 'option_2')
Run Code Online (Sandbox Code Playgroud)

现在我对字段有一个独特的约束。有没有一种办法也该定义的其他方式,使其不管什么是option_1,什么是option_2

例如:

Options.create('spam', 'eggs') # Allowed
Options.create('spam', 'eggs') # Not allowed
Options.create('eggs', 'spam') # Is allowed but should not be
Run Code Online (Sandbox Code Playgroud)

提前致谢!

python django django-models unique-constraint

4
推荐指数
1
解决办法
3697
查看次数

如何使 Django 表单字段唯一?

我有一个注册表单,我想在其中使电子邮件和手机号码字段的数据唯一....

class SignUpForm(UserCreationForm):
    email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.', unique=True)
    mobile_no = forms.CharField(validators=[max_length=17, initial='+91', unique=True)  
Run Code Online (Sandbox Code Playgroud)

我目前正在使用,unique=True但它引发错误...

TypeError: __init__() got an unexpected keyword argument 'unique'
Run Code Online (Sandbox Code Playgroud)

django django-forms unique-constraint python-3.x

4
推荐指数
1
解决办法
4138
查看次数