gpt4 book ai didi

SQL:当 UNIQUE 键约束不适用时处理表中的唯一值

转载 作者:行者123 更新时间:2023-12-05 00:06:03 28 4
gpt4 key购买 nike

当无法使用 UNIQUE 约束时需要维护具有唯一值的表时,您会怎么做?

例如,我使用 MySQL 并希望将我的 url 映射到 id。所以我创建了一个表:

CREATE TABLE url (id INTEGER PRIMARY KEY AUTO_INCREMENT, url VARCHAR(2048));

问题是 mysql 不允许大于 1000 字节的唯一字段。通常如何仅在 sql 中原子不存在时才插入?

最佳答案

你可以创建一个额外的字段,它是一个 url 的哈希值,例如md5,并使该哈希字段唯一。您当然可以确定该 URL 是唯一的,并且几乎可以 100% 确定您可以插入一个新的 URL(如果它不存在的话)。

创建表锁很诱人,但是创建表锁将隐式提交您正在处理的事务:http://www.databasesandlife.com/mysql-lock-tables-does-an-implicit-commit/

您可以创建一个单行表,例如名称 mutex,type=InnoDB,向其中插入一行,然后对该行执行 select for update 以创建与事务兼容的锁。这很讨厌,但这就是我在我的应用程序中在 MySQL 中进行表锁定的方式:(

关于SQL:当 UNIQUE 键约束不适用时处理表中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995542/

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