如何将表列从十进制更改为 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Cast on Left Join 将 VARCHAR 更改为 DECIMAL
如何将列从 nvarchar(max) 更改为 nvarchar(50)