Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Некоторые замечания к изложенному в книге "Самоучитель MySQL 5"
 
 автор: Jim Say   (28.09.2006 в 09:39)   письмо автору
 
 

В разделе 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.

   
 
 автор: cheops   (28.09.2006 в 12:18)   письмо автору
 
   для: Jim Say   (28.09.2006 в 09:39)
 

1. Да, в новых версиях MySQL таблицы в табличном пространстве именуются как a.t и b.t, поэтому конфликта не происходит.
2. Нет таблицам MyISAM не вредит переимнование базы данных, а вот таблицы InnoDB будут повреждены. Впрочем, начиная с версии 5.1.7 в MySQL вводится операторо RENAME DATABASE, который должен решить эту проблему.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования