|
|
|
| В разделе 11.6 InnoDB ( стр. 149-150 ) читаем :
"В отличие от MyISAM и BDB, таблицы для InnoDB
не создаются в базах данных".
И далее ...
"Все таблицы хранятся в едином табличном пространстве,
поэтому имена таблиц должны быть уникальными".
Из указанной в книге информации, насколько я понял, следует, что
MySQL не позволяет иметь в двух разных схемах
таблицы типа innoDB с одинаковыми именами ...
Однако в реальности ( эксперимент производился над базой данных MySQL 5.0.24a )
мне удалось создать две разные схемы "a" и "b", и в каждой - по таблице "t" ( тип InnoDB ).
На стр. 55 читаем :
"Специального SQL-ператора, предназначенного для переименования базы данных, не существует.
Но эту операцию легко осуществить, переименовав каталог базы данных".
Под словом "каталог", очевидно, следует понимать директорию с именем базы данных,
в которой находятся .frm, .MYD, .MYI - файлы.
В случае базы, включающей с себя таблицы типа InnoDB,
в её каталоге будут находиться только .frm- файлы.
Однако если теперь переименовать каталог такой базы данных (типа InnoDB),
а потом попытаться сделать запрос к какой-либо её таблице,
то Вы получите сообщение об отсутсвии таблицы в базе данных.
Таким образом указанная мной цитата относится, пожалуй, только к базам, состоящим из таблиц типа MyISAM,
и уж ни в коей мере к базам, включающим в себя таблицы типа InnoDB. | |
|
|
|
|
|
|
|
для: Jim Say
(28.09.2006 в 09:39)
| | 1. Да, в новых версиях MySQL таблицы в табличном пространстве именуются как a.t и b.t, поэтому конфликта не происходит.
2. Нет таблицам MyISAM не вредит переимнование базы данных, а вот таблицы InnoDB будут повреждены. Впрочем, начиная с версии 5.1.7 в MySQL вводится операторо RENAME DATABASE, который должен решить эту проблему. | |
|
|
|