MySQL字段类型

发布于 2024-11-09 05:55:42 字数 219 浏览 0 评论 0原文

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

为了区分临时 ID 和常规 ID,我在 id 前面添加了 0。

示例:4——普通用户; 023 -- 临时

但是,当我将此 ID 填充到 ym 表中时,零将被丢弃。我需要将其更改为什么字段类型才能保持所有 ID 完好无损?

I have a table in my db where I store records of user actions. Currently the column that contains user IDs is set to int(11), however i am making some changes to my code where I will be adding temporary user IDs.

To differentiate the temporary IDs from the regular ones, I prepend 0 to the id.

Example: 4 -- regular user; 023 -- temporary

However when I populate this ID into ym table the zero gets discarded. What field type do I need to change it to to keep all IDs in tact?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ζ澈沫 2024-11-16 05:55:42

如果你想在 id 前面加上 0 前缀,你可以将其更改为 varchar

但你可能想尝试一下。
添加新列:

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

然后迁移您的 id

UPDATE `your_table` SET temp_id = `original_id`;

You could change it to an varchar if you want to prefix the id's with a 0

But you might want to try this.
Add a new column:

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

Then migrate your id's

UPDATE `your_table` SET temp_id = `original_id`;
只是一片海 2024-11-16 05:55:42

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

I think you'll have to go with a varchar field but note that this will eliminate your auto_increment if you have one.

方觉久 2024-11-16 05:55:42

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

我建议否定该数字以指示临时 ID。

The user ID is an int and ints are binary numbers. A leading zero is the SAME as the number without a leading zero.

I would suggest negating the number to indicate a temporary id.

猫性小仙女 2024-11-16 05:55:42

你不能在 int 之前添加 0((01 == 1)——大多数情况下,但我不会讨论其中的变幻莫测)。

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

You can't add a 0 before an int ( (01 == 1) -- mostly but I'm not going to get into the vagaries of that).

Just add a type column. You can always drop the column later.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文