2016-06-21 41 views
-1

基本上我有一个具有大量领域,部分INT和一些VARCHAR的表。MYSQL更新(变更)许多领域一起

的问题是,由于进口某些问题,某些精密组件已分配VARCHAR 20和VARCHAR 10等。但是,它将包含超过一百个字符的数据。

有没有一种方法,在MySQL中,使所有 VARCHAR字段为VARCHAR 300就位VARCHAR 20等的,使用单个查询

取而代之的是:

Field 1 : VARCHAR 15 
Field 2 : VARCHAR 20 
Field 3 : INT 6 

我想提前

Field 1 : VARCHAR 300 
Field 2 : VARCHAR 300 
Field 3 : INT 6 

感谢:-)

+0

为什么我低调:-(我没有在这个地方找到答案 – Manav

+0

你被低估了,因为你失去了十倍的时间寻找一个单一的查询,而不是一个一个的改变 –

回答

2

您可以使用ALTER TABLE语句来修改列:

ALTER TABLE myTable 
    MODIFY COLUMN Field1 VARCHAR(300), 
    MODIFY COLUMN Field2 VARCHAR(300), 
... 
    MODIFY COLUMN FieldN VARCHAR(300); 

另一种方法是用一个程序来获取所有表和更新的所有字段。但我认为这不是你的情况。

+0

_是否有办法在MySQL中,使所有VARCHAR领域VARCHAR 300就位VARCHAR 20等..,_ **使用单个查询** –

+0

@RahulSharma比他们应该使用'msqli'运行此查询 - 什么是错的这个答案? –

+0

@RahulSharma。“是”,你改变了列是正确的长度,你必须列出列。唯一的缺憾这个答案是Felippe重复说'改变table',而不是在一个做多的修改声明。但这个想法是正确的。 –