MYSQL禁用自动修剪

MYSQL禁用自动修剪,mysql,string,trim,Mysql,String,Trim,如果我输入两个只有空格的字符串。我将收到以下错误消息: 错误1062:键“PRIMARY”的重复条目“” 如何关闭“自动修剪” 我使用的是这个Charset:uft8-uft8_-bin和这个数据类型:Varchar根据文档,当比较两个字符串时,首先用空格填充最短的字符串,使它们的长度相等 在文档中搜索8.2 If the length in characters of X is not equal to the length in characters of Y, then the short

如果我输入两个只有空格的字符串。我将收到以下错误消息:

错误1062:键“PRIMARY”的重复条目“”

如何关闭“自动修剪”

我使用的是这个
Charset:uft8-uft8_-bin
和这个数据类型:
Varchar

根据文档,当比较两个字符串时,首先用空格填充最短的字符串,使它们的长度相等

在文档中搜索
8.2

If the length in characters of X is not equal to the length
in characters of Y, then the shorter string is effectively
replaced, for the purposes of comparison, with a copy of
itself that has been extended to the length of the longer
string by concatenation on the right of one or more pad char-
acters, where the pad character is chosen based on CS. If
CS has the NO PAD attribute, then the pad character is an
implementation-dependent character different from any char-
acter in the character set of X and Y that collates less
than any string under CS. Otherwise, the pad character is a
<space>.
如果X的字符长度不等于长度
在Y字符中,则较短的字符串有效地
为便于比较,替换为
它本身已经延伸到更长的长度
通过在一个或多个pad char的右侧连接字符串-
角色,其中根据CS选择填充字符。如果
CS具有无填充属性,则填充字符为
与任何字符不同的依赖于实现的字符-
比较少的X和Y字符集中的角色
比CS下的任何字符串都多。否则,填充字符为
.

换句话说就是这样。这并不是要用您输入的空格量来存储值,而是检查重复主键所做的比较。所以不能让两个空格不同的字符串作为主键

你确定这是自动修剪的问题吗?是的,这是主键,我不确定这是自动修剪的问题。。但是我怎样才能添加两个不同长度的空字符串呢?第一个问题是为什么要在列中输入一个空格?有必要吗?另外,如果有必要,您确定列应该是主键吗?请告知您的要求。我来告诉你解决办法。使用多个空格添加相同的字符串可能不是一个好主意。我正在将旧的Sybase数据库转换为Mysql,并且Sybase数据必须等于Mysql数据。谢谢您的回答。你能告诉我如何设置无键盘吗?幸运的是MYSQL不允许你更改它。手册中说所有MySQL排序规则都是PADSPACE类型。这意味着比较MySQL中的所有CHAR和VARCHAR值时,不考虑任何尾随空格。