我将如何在phpMyAdmin中执行以下操作(仅对如何执行UNIQUE(标题,说明)感兴趣)?:
CREATE TABLE `myData` (
id serial primary key,
title varchar(255) not null,
description varchar(255) not null,
UNIQUE (title, description)
);
顺便说一句,为了不对SO提出另一个问题,我想知道长字符串可以使用哪些其他类型?因为225个字符对于我们的目的而言太小。虽然我知道从MySQL 5.0.3开始,varchar最多可以接受65,535个字符。但是我可以将这些字段指定为MEDIUMTEXT吗(出于兼容性考虑,我的客户希望这些字段也是如此)?这样做时,我会收到错误消息,因为“ BLOB / TEXT列...在密钥规范中使用而没有密钥长度”。那我该怎么办?我需要这两个字段是唯一的-即使描述不同,我也能够存储相似的标题,但是当某些标题和描述与传入数据的标题和描述相匹配时,我不希望存储该传入数据。
最佳答案
对于1000
,默认最大密钥长度是MyISAM
字节,对于3072
,默认最大密钥长度是InnoDB
字节(另外要求,密钥中的每一列不得超过767
字节)。
如果您的表是具有单字节编码的InnoDB
或MyISAM
,则可以创建约束。
如果不是,那么您可以创建一个前缀索引,但是要知道索引只会在前缀内保持唯一性。
但是,最好对标题和描述进行散列,然后将散列存储在唯一的列中。
关于php - MySQL:如何使表中几行的数据唯一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2379347/