MySQL
Konverterar från MyISAM till InnoDB
Sök…
Grundläggande konvertering
ALTER TABLE foo ENGINE=InnoDB;
Detta konverterar tabellen, men tar inte hand om några skillnader mellan motorerna. De flesta skillnader spelar ingen roll, särskilt för små bord. Men för mer upptagna tabeller bör andra överväganden beaktas. Överväganden vid konvertering
Konvertera alla tabeller i en databas
För att enkelt konvertera alla tabeller i en databas använder du följande:
SET @DB_NAME = DATABASE();
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE';
OBS: Du bör vara ansluten till din databas för att
DATABASE()
-funktionen ska fungera, annars kommer den att returneraNULL
. Detta gäller mestadels för standard mysql-klient som levereras med servern eftersom det gör det möjligt att ansluta utan att ange en databas.
Kör detta SQL-uttalande för att hämta alla MyISAM
tabeller i din databas.
Slutligen kopierar du utgången och kör SQL-frågor från den.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow