gpt4 book ai didi

sql - nvarchar 类型的唯一列

转载 作者:行者123 更新时间:2023-12-04 23:47:25 25 4
gpt4 key购买 nike

我有一张简单的 table :

文件:路径|已删除 |类别 |描述

我想将该表用于 Linq to SQL 实体模型。在模型上,该列 path(那里是字符串,数据库中的 nvarchar)可以设置为主键,但 Visual Studio 表设计器并非如此.

路径是使一个文件唯一的原因,因此我必须确保表中没有重复的路径。如何做到这一点?谢谢你的时间。

最佳答案

您使用 UNIQUE 约束、NOT NULL UNIQUE 约束或 SQL 中的 PRIMARY KEY 约束使列唯一。但是,我能想到的每一个当前的 dbms 对列的长度都有一个或多个限制,可以通过这种方式进行限制。

这意味着在最一般的情况下有一个相当引人注目的问题。一个 UNC path on Windows ,例如,可以长约 32,767 个字符。

Linux 系统差异很大。根据 Google 的快速研究,1024 和 4096 似乎很常见。

我认为您将不得不对 only 代理键设置唯一约束。 (您知道这样说对数据库人员的伤害有多大。)问题是您可以在代理项上强制唯一性,但不能在它取代的东西上强制执行唯一性。而它所取代的东西是重要的部分。

身份证号码在一般情况下不起作用;您可以轻松地以 {1,/etc/adjtime}, {2,/etc/adjtime}, {3,/etc/adjtime} 结束。您需要以某种方式将真实数据与代理键的值联系起来的东西。像 hashbytes () 将在 T-SQL 中“工作”; linq 有类似的功能。 (但你可能会发生冲突,就像几乎所有的哈希函数一样。)

关于sql - nvarchar 类型的唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com