数据库字段太长,做唯一性约束
2015-12-28 15:35
351 查看
今天同事问到,要把一个超长的字段做一个唯一性约束,text类型和大于varchar(255)类型,都无法用unique。
经过Google后,得到一个很好的思路:就是新建一个字段,和这个超长的字段对应,运用加密方式将原字段内容通过加密方式缩短,并能做到唯一(MD5 - SHA1 - RAND - UNIQUEID - TIME - CRC32)。通过对新建的字段做唯一性约束,就能达到最终的目的!
Google 代码:
经过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!"; }
相关文章推荐
- redis 的性能及高版本配置
- DOS执行mysql数据库备份及压缩
- oracle 锁表、解锁的语句
- 数据库锁表的分析与解决
- 使用show status信息分析SQL性能
- 动软代码生成器生成数据库文档
- SQL与java数据库编程汇总(动态更新)
- sqlserver游标概念与实例全面解说
- oracle 查看锁表情况并处理锁表
- Oracle恢复被删除的表
- SQL学习 关于汇总函数
- Sqoop导出数据到MYSQL问题
- mysql事务锁等待时间
- [Oracle] rowid详解
- 一个项目配置多个数据库
- MySQL Fabric实验(一)HA
- mysql 内连接、左连接、右连接
- python使用cx_oracle连接oracle数据库
- pg_rman 实现对postgresql数据库的备份,恢复与管理
- mysql查询上一条和下一条信息