【问题标题】:Create a table with a primary key and a separate unique column in SQL Azure Federation在 SQL Azure 联合中创建具有主键和单独唯一列的表
【发布时间】:2012-09-07 04:05:25
【问题描述】:

如何在 SQL Azure 联合中创建唯一标识符 ID 列和唯一 nvarchar(256) 电子邮件地址列?我不是 SQL 人,所以我不知道如何设置唯一约束,或者是否可以在联合数据库中这样做。

编辑:

我找到了一个 TSQL 查询来创建唯一约束,但我收到以下错误:

“联合表上的唯一索引或聚集索引必须包含联合列”

我认为我的联合列是 ID 列。

【问题讨论】:

    标签: azure-sql-database unique-constraint bigint


    【解决方案1】:

    只需按照错误告诉您的内容进行操作即可。

    联合列必须是唯一索引或聚集索引的一部分。

    见:Federation Guidelines and Limitations

    所以,对于您的唯一索引,列应该是 Id+emailAddress

    【讨论】:

    • 你的意思是我应该将它们组合成一列并像这样存储数据:GUID+emailAddress?
    • 不,您可以将它们保留为单独的列。我要说的是,当您为 emailAddress 创建唯一索引时,SQL 联合要求您包含联合 ID。所以索引列应该是 Id 和 emailAddress
    • 您能否发布一个示例 CREATE TABLE 查询来解决我想做的事情,以便我更好地了解如何创建唯一列?谢谢。
    • 在 Table6 (ID, Column1) 上创建唯一索引电子邮件;不工作。 :( 我能够将重复的 Column1 值保存到表中。
    • 如果将联合列添加到唯一索引中,在这种情况下不会破坏创建唯一索引的目的吗?联合查询仅在一个联合成员上运行,这就是存在此约束的原因。 OP 想要的约束不能在数据库级别强制执行,因为将 ID 添加到唯一约束只会强制每个 ID 列中电子邮件的唯一性。
    猜你喜欢
    • 2012-09-17
    • 2011-03-26
    • 2023-01-14
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2020-04-05
    • 2019-05-03
    相关资源
    最近更新 更多