MySQl字段类型
问题描述:
我在我的数据库中有一个表,用于存储用户操作的记录。目前包含用户ID的列被设置为int(11),但是我正在对我的代码进行一些更改,我将添加临时用户ID。MySQl字段类型
为了区分临时ID和普通ID,我在ID前面加了0。
例如:4-常规用户; 023 - 临时
然而,当我将这个ID填充到ym表中时,零被丢弃。我需要将哪些字段类型更改为保持所有ID的机制?
答
用户ID是一个int,int是二进制数。前导零是与没有前导零的数字相同。
我会建议否定数字来表示临时ID。
答
我想你必须去一个varchar字段,但请注意,这将消除你的auto_increment,如果你有。
答
你不能在int((01 == 1))之前加一个0 - 大多数情况下,但我不打算进入这种变幻莫测的状况)。
只需添加一个类型列。您以后可以随时删除该列。
答
你可以将其更改为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
它并不一定是int ... – santa 2011-05-19 21:25:51
看看下面我的解决方案。我认为这就是你真正想要的。 – 2011-05-19 21:28:57