gpt4 book ai didi

php - MySQL:如何使表中多行的数据唯一?

转载 作者:行者123 更新时间:2023-11-29 15:04:46 26 4
gpt4 key购买 nike

我将如何在 phpMyAdmin 中执行以下操作(仅对如何执行 UNIQUE(标题、描述)感兴趣)?:

CREATE TABLE `myData` (
id serial primary key,
title varchar(255) not null,
description varchar(255) not null,
UNIQUE (title, description)
);

顺便说一句,为了不引发另一个问题,我想知道我还可以使用哪些其他类型来处理长字符串?因为 225 个字符对于我们的目的来说太小了。尽管我知道从 MySQL 5.0.3 开始,varchar 最多可以接受 65,535 个字符。但是我可以将这些字段指定为 MEDIUMTEXT (为了兼容性,我的客户希望这些字段如此)吗?当我这样做时,我收到一个错误,因为“BLOB/TEXT 列...在没有 key 长度的 key 规范中使用”。那我该怎么办?我需要这两个字段是唯一的 - 这样即使描述不同,我也能够存储类似的标题,但是当标题和描述与传入数据的标题和描述相匹配时,我不希望存储此传入数据.

最佳答案

MyISAM 的默认最大 key 长度为 1000 字节,InnoDB 的默认最大 key 长度为 3072 字节(还有额外的要求:键中的每一列不应超过 767 字节)。

如果您的表是单字节编码的 InnoDBMyISAM,那么您可以创建约束。

如果不是,那么您可以创建一个前缀索引,但请注意该索引只会保持前缀内的唯一性。

但是,最好对标题和描述进行哈希处理,并将哈希值存储在唯一的列中。

关于php - MySQL:如何使表中多行的数据唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379347/

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