键“PRIMARY”的重复条目。忽略字符串的空格
Posted
技术标签:
【中文标题】键“PRIMARY”的重复条目。忽略字符串的空格【英文标题】:Duplicate entry for key 'PRIMARY' .Ignoring the spaces for strings 【发布时间】:2014-06-05 15:14:36 【问题描述】:mysql> CREATE TABLE primary2(boom text,id int,PRIMARY KEY(boom(5)) );
Query OK, 0 rows affected (0.04 sec)
mysql> INSERT INTO primary2 VALUES('viok',1);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO primary2 VALUES('viok',1);
ERROR 1062 (23000): Duplicate entry 'viok' for key 'PRIMARY'
mysql> INSERT INTO primary2 VALUES('viok ',1);
ERROR 1062 (23000): Duplicate entry 'viok ' for key 'PRIMARY'
STRINGs 'viok' 和 'viok' 不同。如何添加带空格的字符串?
【问题讨论】:
make text column as unique key的可能重复 我知道!!!你不懂问题 问题是你不应该使用text
作为唯一/主键。
***.com/a/18222436/3503205这是答案。
【参考方案1】:
MySQL 忽略字符串比较中的尾随空格。一种方法是添加一列来存储文本具有的尾随空格数。
一种方法是将其存储为 varchar,允许尾随空格。
【讨论】:
【参考方案2】:问:如何添加带空格的字符串?
答:不可能。
就 MySQL 如何将它们存储为索引条目而言,TEXT 值 'viok' 和 'viok' 是不唯一的。这是documented behavior:
如果 TEXT 列被索引,则索引条目比较在末尾用空格填充。这意味着,如果索引需要唯一值,则仅在尾随空格数不同的值将发生重复键错误。例如,如果表包含“a”,则尝试存储“a”会导致重复键错误。这不适用于 BLOB 列。
【讨论】:
以上是关于键“PRIMARY”的重复条目。忽略字符串的空格的主要内容,如果未能解决你的问题,请参考以下文章
在 Doctrine2/Symfony2 中的重复条目上插入忽略
[23000][1062] 键 'PRIMARY' 的重复条目 '0'