Szukaj…


Podstawowa konwersja

ALTER TABLE foo ENGINE=InnoDB;

To przekształca tabelę, ale nie eliminuje różnic między silnikami. Większość różnic nie będzie miała znaczenia, szczególnie w przypadku małych stolików. Ale w przypadku bardziej obciążonych tabel należy rozważyć inne kwestie. Uwagi dotyczące konwersji

Konwertowanie wszystkich tabel w jednej bazie danych

Aby łatwo przekonwertować wszystkie tabele w jednej bazie danych, użyj następujących poleceń:

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

UWAGA: Powinieneś być podłączony do bazy danych, aby funkcja DATABASE() działała, w przeciwnym razie zwróci NULL . Dotyczy to głównie standardowego klienta mysql dostarczanego z serwerem, ponieważ umożliwia połączenie bez określania bazy danych.

Uruchom tę instrukcję SQL, aby pobrać wszystkie tabele MyISAM w bazie danych.

Na koniec skopiuj dane wyjściowe i wykonaj z nich zapytania SQL.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow