2010-10-13 70 views
1

我有一个VARCHAR字段在MySQL表像这样 -MySQL的截断0 VARCHAR字段

CREATE TABLE desc(
    `pk` varchar(10) NOT NULL UNIQUE, 
    ... 
); 

在PK字段中的值是类型的 - (xx0000001,xx0000002,...)。但是,当我将这些插入到我的表中时,pk字段中的值将被截断为(xx1,xx2,...)。

如何预防?

UPDATE:添加INSERT声明

INSERT INTO desc (pk) VALUES ("xx0000001"); 
+2

你的插入语句是什么样的? – 2010-10-13 17:34:42

+0

以为你会问这个问题:)更新了Q. – 2010-10-13 17:39:04

+0

检查了你对MySQL 5.1.38的查询,它对我有用。 – 2010-10-13 17:44:32

回答

0

这可能是您正在使用的值看观众被错误地显示信息,因为它试图解释这个字符串当作一个数字,或者MySQL可能会将您的数字解释为十六进制或奇怪的东西。

如果你

INSERT INTO desc (pk) VALUES ("xx0000099"); 

是否回来为xx99会发生什么?或其他一些价值?

0

看起来你在引用两个语句,文本和desc中的不同表格?

+0

这是一个错字。 – 2010-10-13 17:46:41

0

可能在您的程序逻辑的某处,该值被解释为十六进制或八进制数?