2013-11-14 79 views
0

我正在将URL存储在具有varchar(4000)数据类型的列中。我想对此列强制执行唯一性约束,但无法这样做,因为4000远远超出了最大限制。唯一性约束varchar(4000)列

有什么办法来强制这些列的唯一性?

+0

什么是你的MySQL版本? –

+0

我正在使用Mysql 5.5.31。 –

+0

那么,只要检查一下,第一个767字节的索引就不够了? – Strawberry

回答

0

该长字段的唯一性不能通过使用索引来强制执行。

right在插入/更新之前,可能会在trigger内执行选择,并且失败已包含在该列中的值。

在应用程序级别或存储过程内的可行解决方法可能是执行新值的选择,然后在事务中执行插入操作(如果该值尚不存在)。

在任何情况下,所涉及的列的一部分都应该(非唯一)索引以加快选择。