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

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

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

我想要的最终结果是:

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

【问题讨论】:

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

标签: mysql sql


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2013-09-15
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多