2012-11-23 35 views

回答

30

是肯定的

ALTER TABLE table_name MODIFY column_name VARCHAR(X)

+0

非常感謝您的超級快速回答:) – user1768076

4

對於MS SQL:

ALTER TABLE table_name 
ALTER COLUMN column_name datatype(value) 

對於MySQL

ALTER TABLE table_name 
MODIFY column_name datatype(value) 
+1

P可能是'datatype(value)'是目標類型而不是源類型? – ArtB

+0

正確的,我應該更清楚一點。 –

0

我用這對我的數據庫的質量變化。執行它,然後複製所有行,粘貼到查詢字段中,刪除標題並運行。

變更引擎,CHARSET和數據庫中的所有表=資訊科技署的歸類:

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," ENGINE=INNODB, 
CHARSET=utf8, COLLATE=utf8_general_ci;") AS ExecuteTheString 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="itsd" 
    AND TABLE_TYPE="BASE TABLE"; 

轉換所有表的字符集和整理在DB =資訊科技署:

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," CONVERT TO 
CHARACTER SET utf8;") AS ExecuteTheString 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="itsd" 
    AND TABLE_TYPE="BASE TABLE"; 

更改所有文本字段爲VARCHAR (255)在DB = itd中:

SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' MODIFY COLUMN ', 
column_name, ' VARCHAR(255);') 
FROM information_schema.columns 
WHERE TABLE_SCHEMA = 'itsd' 
    AND DATA_TYPE = 'text' 
    AND TABLE_TYPE="BASE TABLE"; 
相關問題