如何将表列从十进制更改为 varchar [重复]

Posted

技术标签:

【中文标题】如何将表列从十进制更改为 varchar [重复]【英文标题】:How do I alter a table column from decimal to varchar [duplicate] 【发布时间】:2021-03-14 15:57:03 【问题描述】:

我想知道是否可以将 SQL 表列从十进制更改为 varchar。

我的表名为“products”,我想将“qty”列更改为 varchar。

我想要的最终结果是:

表 products 中的列 qty 为 varchar 而不是小数

【问题讨论】:

用您正在使用的数据库标记您的问题。但是,您为什么希望 qty 成为字符串?一个数字似乎很合理。 您真的想将数量作为 varchar 保存吗?像数量 = '十' ??我怀疑从长远来看这将是一个好主意 这对我来说听起来像是糟糕的设计。如果您需要额外的信息,最好创建一个新列来保存它。例如,如果您需要存储“2kg”,则将 2 存储在 qty 中,将 kg 存储在这个新的 varchar 列中。 您能解释一下为什么要更改数据类型吗?这可以帮助我们回答问题/为您提供更好的设计选择。 好的!谢谢大家的想法。我应该试试你告诉@FelippeDuarte 的那个 【参考方案1】:

基于How to change mysql column definition?的回答

遵循语法ALTER TABLE table_name MODIFY COLUMN <column_name> <type>;

因此,在您的情况下,它将是:

ALTER TABLE products MODIFY COLUMN qty VARCHAR(desired_characters);

desired_characters 应该定义你的varchar 应该包含多少个字符。

但我建议将int 用于数量类型字段。此外,您可以将其标记为无符号,因为数量不能为负数。

ALTER TABLE products MODIFY COLUMN qty int unsigned;

【讨论】:

以上是关于如何将表列从十进制更改为 varchar [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在数据表中单击按钮时将表列更改为jquery日历

更改 Laravel auth 表名和列名

使用 Cast on Left Join 将 VARCHAR 更改为 DECIMAL

如何将列从 nvarchar(max) 更改为 nvarchar(50)

Postgres 和 Laravel 如何将列从字符串类型更改为整数?

如何在 Amazon Redshift 中将列从字符串更改为日期?