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'
STRING的“ viok”和“ viok”不同。如何添加带空格的字符串?
最佳答案
问:如何添加带空格的字符串?
答:不可能。
就MySQL如何将它们存储为索引条目而言,TEXT值“ viok”和“ viok”不是唯一的。这是documented behavior:
如果对TEXT列建立索引,则索引条目比较将在末尾加空格。这意味着,如果索引要求唯一值,则仅尾随空格数量不同的值将发生重复键错误。例如,如果表包含“ a”,则尝试存储“ a”会导致重复键错误。对于BLOB列,情况并非如此。