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 returnera NULL . 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