MySQl字段类型

问题描述:

我在我的数据库中有一个表,用于存储用户操作的记录。目前包含用户ID的列被设置为int(11),但是我正在对我的代码进行一些更改,我将添加临时用户ID。MySQl字段类型

为了区分临时ID和普通ID,我在ID前面加了0。

例如:4-常规用户; 023 - 临时

然而,当我将这个ID填充到ym表中时,零被丢弃。我需要将哪些字段类型更改为保持所有ID的机制?

用户ID是一个i​​nt,int是二进制数。前导零是与没有前导零的数字相同。

我会建议否定数字来表示临时ID。

我想你必须去一个varchar字段,但请注意,这将消除你的auto_increment,如果你有。

你不能在int((01 == 1))之前加一个0 - 大多数情况下,但我不打算进入这种变幻莫测的状况)。

只需添加一个类型列。您以后可以随时删除该列。

+0

它并不一定是int ... – santa 2011-05-19 21:25:51

+0

看看下面我的解决方案。我认为这就是你真正想要的。 – 2011-05-19 21:28:57

你可以将其更改为VARCHAR,如果你想用一个0

前缀标识的,但你可能想试试这个。 添加新栏:

ALTER TABLE `your_table` ADD COLUMN `temp_id` INT(11) NULL AFTER `original_id`; 

然后迁移你的ID的

UPDATE `your_table` SET temp_id = `original_id`; 
+0

我靠着varchar自己。此列没有索引,没有唯一性,也没有自动增量。纯粹将某些行为与用户联系起来。 – santa 2011-05-19 21:25:20