2009-10-28 2 views
18
  • Как определить тип базы данных mysql: будь то InnoDB или MyISAM?
  • Как преобразовать MyISAM в InnoDB или наоборот?
+0

ли вы использовать любую управляющую систему базы данных? Как phpMyAdmin или SQLyog? –

+0

Нет. Я не использую систему управления базами данных. – Rachel

+0

Я пытаюсь изменить таблицу the_table engine = InnoDB; но кажется, что движок не изменился, потому что у меня нет права или что может быть причиной этого? – Rachel

ответ

31

Для определения механизма хранения который используется в таблице, вы можете использовать show table status. Поле Engine в результатах покажет механизм базы данных для таблицы. Кроме того, вы можете выбрать engine поле из information_schema.tables:

select engine 
from information_schema.tables 
where table_schema = 'schema_name' 
    and table_name = 'table_name' 

Вы можете переключаться между двигателями хранения с использованием alter table:

alter table the_table engine = InnoDB; 

Где, конечно, вы можете указать любой доступный механизм хранения.

+1

Я пытаюсь изменить таблицу the_table engine = InnoDB; но кажется, что движок не изменился, потому что у меня нет права или что может быть причиной этого? – Rachel

+0

«Если механизм хранения не поддерживает попытку ALTER TABLE, может возникнуть предупреждение. Такие предупреждения могут отображаться с помощью SHOW WARNINGS" –

10

Выберите базу данных в вопросе и запустить show table status;

3
SHOW TABLE STATUS FROM `database`; 

перечислит все для всех таблиц, начиная с того, являются ли они MyISAM или InnoDB. если вы хотите перечислить только данные о 1 таблице, ниже синтаксис может быть использован *:

SHOW TABLE STATUS FROM `database` LIKE 'table'; 

изменить таблицу двигателя:

ALTER TABLE `table` ENGINE=InnoDB; 

* внимание использовать апостроф (`одиночной обратной кавычки) для имя базы данных и имя таблицы и SINGLE QUOTE (') для строки сравнения (часть имени таблицы) после LIKE.

`! = '

Смежные вопросы