【问题标题】:Changing Column in MySQL from int to double?将MySQL中的列从int更改为double?
【发布时间】:2025-11-26 17:30:02
【问题描述】:

基本上,我目前在 MySQL 表中有一个列,它是一个 int。

我想把它改成双倍。我在网上搜索过,但它所提出的只是从列中获取值后的转换(比如将某个日期转换为日期),但这不是我的意思。

我猜是 Alter Table 的问题,我在 MySQL 开发页面上查找了它,但找不到我要找的东西。

【问题讨论】:

  • 我想你的意思是“列”,而不是“行”?

标签: mysql syntax int double


【解决方案1】:

您是对的,您需要使用ALTER TABLE。该命令将如下所示:

ALTER TABLE tablename MODIFY COLUMN columnname DOUBLE;

【讨论】:

    【解决方案2】:

    这是真正的语法。确保也适当地设置可空性:

    ALTER TABLE your_table
    MODIFY COLUMN your_column DOUBLE NULL;
    

    ALTER TABLE your_table
    MODIFY COLUMN your_column DOUBLE NOT NULL;
    

    【讨论】:

    • 可空性在 column_definition 中是可选的 - 如果未指定,则默认为 NULL;为什么不争论所有其他可选属性也应该被指定来代替接受它们的默认值?
    • 我试图帮助 OP 在更改数据类型时避免意外更改可空性。当然,默认值等也是如此,但我试图解决最可能的情况。如果原始列不是 NULL 并且 OP 使用您的答案,则该列将更改为 NULL。
    • 谢谢艾克 - 我认为这个解释很有帮助(希望对 OP 也有帮助)。 +1
    • 这会删除当前列的内容吗?
    • @ThomasAhle 这将保留现有的列值,将它们从 INT 隐式转换为 DOUBLE。
    最近更新 更多