2012-11-23 15 views

Antwort

30

Ja sicher

ALTER TABLE table_name MODIFY column_name VARCHAR(X)

+0

vielen Dank für Ihre superschnelle Antwort :) – user1768076

4

Für MS SQL:

ALTER TABLE table_name 
ALTER COLUMN column_name datatype(value) 

Für MySQL

ALTER TABLE table_name 
MODIFY column_name datatype(value) 
+1

P vermutlich ist 'Datentyp (Wert)' der Zieltyp und nicht der Quelltyp? – ArtB

+0

Richtig, ich hätte ein bisschen klarer darüber sein sollen. –

0

Ich habe diese für die Massenänderung meiner DB. Führen Sie es aus, kopieren Sie dann alle Zeilen, fügen Sie sie in das Abfragefeld ein, entfernen Sie die Kopfzeile und führen Sie sie aus.

ändern ENGINE, CHARSET und COLLATION aller Tabellen in DB = ITSD:

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"; 

konvertieren CHARSET und COLLATION aller Tabellen in DB = ITSD:

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"; 

ändern alle Textfelder zu VARCHAR (255) alle Tabellen in DB = ITSD:

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"; 
Verwandte Themen