Задавайте вопросы, мы ответим
Вы не зашли.
Как можно проверить существование таблицы с определённым именем?
Неактивен
SHOW TABLES
или
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='dbname' AND TABLE_NAME='tablename';
А какой практический смысл такого запроса?
Неактивен
Спасибо за ответ.
Смысл данного запроса следующий: Если таблицы нет, то она должна будет создаваться автоматически, чтобы не лезть каждый раз в phpmyadmin. Просто и удобно при начальной установке сайта
CREATE TABLE IF NOT EXISTS мне кажется неподходящим в этом случае.
Неактивен
А почему не подходящим? По сути, Вы делаете как раз это, нет?
Неактивен
paulus написал:
А почему не подходящим? По сути, Вы делаете как раз это, нет?
С запозданием но отвечу. Не хочется лишний раз долбить базу запросом CREATE TABLE. Не знаю на сколько я прав, но мне кажется, что если таблица в 99 случаях из 100 уже создана, и только в 1 случае её требуется создать, то быстрее будет проверять существование таблицы, а уж потом, если её нет, то обращаться к mysql с запросом CREATE TABLE.
Я прав или нет? Это будет быстрее?
Отредактированно sito-corito (29.08.2010 18:14:58)
Неактивен
Как показал эксперимент, CREATE TABLE для существующей таблицы быстрее, чем выборка из INFORMATION_SCHEMA
Неактивен
Также важно понимать, что при доступе к строке INFORMATION_SCHEMA материализуются
поля этой строки, т.е. считаются размер данных, индексов и т.п. Даже если нужно оттуда
вытащить только имя.
Неактивен