您的位置:首页 > 数据库

数据库字段太长,做唯一性约束

2015-12-28 15:35 351 查看
今天同事问到,要把一个超长的字段做一个唯一性约束,text类型和大于varchar(255)类型,都无法用unique。

经过Google后,得到一个很好的思路:就是新建一个字段,和这个超长的字段对应,运用加密方式将原字段内容通过加密方式缩短,并能做到唯一(MD5 - SHA1 - RAND - UNIQUEID - TIME - CRC32)。通过对新建的字段做唯一性约束,就能达到最终的目的!

Google 代码:

myId int(11) NOT NULL AUTO_INCREMENT,
myText TEXT,
myUnique VARCHAR(255) NOT NULL DEFAULT '0',
UNIQUE KEY myUnique (myUnique)


$text='the long text to be inserted the long text to be inserted the long text to be inserted the long text to be inserted';
//assuming field name (mylongtextfield)
$result=mysql_query("SELECT id FROM mytable WHERE md5(mylongtextfield)='".md5($text)."'";
if(!$result){
//do your insert query
}else{
echo "the text already exist!";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: