更改MySQL中所有表中的小数位数

时间:2015-04-13 23:34:55

标签: mysql sql decimal

我在SQL方面经验不足,我需要按照以下方式修改我的表格,但无法知道如何操作。

我有一个包含多个表的MySQL数据库,其中一些列具有类型,例如DECIMAL(17,2),我需要将类型更改为尽可能有效地至少有4个小数位。

有人可以帮我这个吗?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用ALTER TABLE更改列定义。例如:

alter table your_table
    modify column a_number decimal(19,4);

在这个例子中,我正在增强列a_number,所以现在它包含了一个长度为19且有4个小数位的数字。您需要增加列的长度,而不仅仅是小数位,因为如果您有17位数字(包括2位小数),如果您不增加长度,则可能会丢失一些值。

检查the reference manual for ALTER TABLE

答案 1 :(得分:0)

你只能通过@Barranka建议的ALTER来做。但是,有两个增强功能:

  • 在单个ALTER中修改单个表中的所有COLUMN;这会跑得更快。
  • 可以编写一个存储过程来读取information_schema.COLUMNS以发现哪些表具有DECIMAL(xx,2)并为您创建ALTER。

但是,你为什么要4位小数?如果你对数字的精确度感到松懈,那么FLOAT或DOUBLE就足够了吗?