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

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


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

最佳答案

对于1000,默认最大密钥长度是MyISAM字节,对于3072,默认最大密钥长度是InnoDB字节(另外要求,密钥中的每一列不得超过767字节)。

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

如果不是,那么您可以创建一个前缀索引,但是要知道索引只会在前缀内保持唯一性。

但是,最好对标题和描述进行散列,然后将散列存储在唯一的列中。

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

10-16 18:51