我试图将DB中的一个列设置为主键,但我总是得到以下错误:
Azure SQL数据仓库不支持强制的唯一约束。若要创建非强制执行的唯一约束,必须将未强制执行的语法作为语句的一部分。
在进行研发时,我发现Azure SQL数据仓库中没有主键和外键的概念,那么如何在其中实现这一点呢?
有什么想法吗?
发布于 2018-04-22 08:45:33
发布于 2020-10-31 15:24:57
我刚刚在Synapse上注册了StackOverflow RSS。第一条信息是这个帖子。我以为这是最近的一次,但请注意,这是两年前的事了,卢里法塞尔4天前刚发了一个回复。我会在这里学习如何工作..。最终。:)
对于主题来说,数据库约束(如主键和外键)是防止糟糕的客户端代码破坏数据一致性的资源。这在OLTP数据库中非常流行(而且几乎是强制性的)。
在OLAP系统中,您以批或流的方式加载数据,您通常不希望这样做,因为它会减慢摄入过程。您通常依赖于舞台表和CTAS技术来呈现表的一致版本。
OLTP事务不应该像Synapse那样在OLAP / BI系统中考虑。这使得主键和外键约束变得无关紧要和不必要。
如果您真的需要在表中创建主键约束,Synapse池可以这样做,但它不会验证表中已经存在的数据。将只检查新的数据(插入/更新)是否重复。
发布于 2019-10-27 01:44:30
<引号>
Azure SQL数据仓库支持以下表约束:
来源:https://learn.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-table-constraints
https://stackoverflow.com/questions/49941101
复制相似问题