Как проверить существует ли таблица mysql php
Как проверить, существует ли таблица MySQL с PHP?
Как просто в теории, как это звучит, я провел немало исследований, и мне трудно понять это.
Как проверить, существует ли таблица MySQL и что она делает что-то. (Думаю, для этого может работать простой оператор php if/else)
Есть ли способ сделать это?
Это то, что я сделал с ответом cwallenpoole:
ОТВЕТЫ
Ответ 1
По общему признанию, это больше Pythonic, чем PHP-идиома, но, с другой стороны, вам не нужно беспокоиться о большом количестве дополнительных данных.
Изменить
Итак, этот ответ был отмечен как минимум дважды с момента, когда я пишу это сообщение. Предполагая, что я совершил некоторую гигантскую ошибку, я пошел, и я провел некоторые тесты, и именно это я обнаружил, что мое решение на 10% быстрее чем ближайшая альтернатива, когда таблица не существует, и она на 25% быстрее, когда таблица существует:
Я попытался запустить это против DESC, но у меня был тайм-аут после 276 секунд (24 секунды для моего ответа, 276, чтобы не завершить описание не существующей таблицы).
Для хорошей оценки я сравниваю схему с четырьмя таблицами, и это почти новая установка MySQL (пока это единственная база данных). Чтобы увидеть экспорт, посмотрите здесь.
И ДАЛЕЕ
Это конкретное решение также более независимо от базы данных, поскольку тот же запрос будет работать в PgSQL и Oracle.
НАКОНЕЦ
mysql_query() возвращает FALSE для ошибок, которые не являются «эта таблица не существует».
Ответ 2
Я не уверен, почему другие отправляют сложные запросы для такой прямой проблемы.
Ответ 3
Если записи не возвращаются, то их не существует.
Ответ 4
125 микросекунд таблица существует проверка
.000125 сек. (125μs)
Время выполнения, измеренное с использованием профилирования mysql, когда таблица существует или нет, составляет около .000125 сек. (125 мкс)
Значение LIMIT 1 важно для скорости. Это минимизирует время запроса сортировки и отправки данных. И размер таблицы не является фактором.
Я всегда использую небуферизованный запрос, когда результаты не требуются.
РЕЗУЛЬТАТЫ ПРОФИЛЯ КОГДА ТАБЛИЦА НЕ СУЩЕСТВУЕТ
КОГДА ТАБЛИЦА СУЩЕСТВУЕТ
Ответ 5
или mysql_query(«SHOW TABLES LIKE ‘tblname'»);
Ответ 6
Даже быстрее, чем плохой запрос:
Таким образом вы можете просто получить одно поле и одно значение..016 секунд для моей более медленной системы.
Ответ 7
ПОКАЗАТЬ ТАБЛИЦЫ, КАК «Имя таблицы»
Если у вас есть ЛЮБЫЕ результаты, таблица существует.
Использовать этот подход в PDO:
Использовать этот подход с DEPRECATED mysql_query
Ответ 8
Он уже был отправлен, но здесь он с PDO (тот же запрос).
Работает как очарование для меня.
И вот другой подход (я думаю, что он медленнее).
Вы также можете играть с этим запросом:
Я думаю, что это было предложено использовать на странице mysql.
Ответ 9
НЕ ИСПОЛЬЗУЙТЕ MYSQL ЛЮБОЕ БОЛЬШЕ. Если вы должны использовать mysqli, но PDO лучше всего:
Ответ 10
Или вы можете использовать
показать таблицы, где Tables_in_
Ответ 11
Вы можете использовать множество различных запросов, чтобы проверить, существует ли таблица. Ниже приведено сравнение между несколькими:
Эти контрольные показатели являются только средними:
Как проверить, существует ли таблица MySQL с PHP?
Как просто в теории, как это звучит, я провел немало исследований, и мне трудно понять это.
Как проверить, существует ли таблица MySQL и что она делает что-то. (Думаю, для этого может работать простой оператор php if/else)
Есть ли способ сделать это?
Это то, что я сделал с ответом cwallenpoole:
По общему признанию, это больше Pythonic, чем PHP-идиома, но, с другой стороны, вам не нужно беспокоиться о большом количестве дополнительных данных.
Изменить
Итак, этот ответ был отмечен как минимум дважды с момента, когда я пишу это сообщение. Предполагая, что я совершил некоторую гигантскую ошибку, я пошел, и я провел некоторые тесты, и именно это я обнаружил, что мое решение на 10% быстрее чем ближайшая альтернатива, когда таблица не существует, и она на 25% быстрее, когда таблица существует:
Я попытался запустить это против DESC, но у меня был тайм-аут после 276 секунд (24 секунды для моего ответа, 276, чтобы не завершить описание не существующей таблицы).
Для хорошей оценки я сравниваю схему с четырьмя таблицами, и это почти новая установка MySQL (пока это единственная база данных). Чтобы увидеть экспорт, посмотрите здесь.
И ДАЛЕЕ
Это конкретное решение также более независимо от базы данных, поскольку тот же запрос будет работать в PgSQL и Oracle.
НАКОНЕЦ
mysql_query() возвращает FALSE для ошибок, которые не являются «эта таблица не существует».
Как проверить существование таблицы MySQL?
Как правильно проверить запись в таблице на существование?
Всё время проверял запись как: SELECT id FROM users WHERE username=»john»; Сейчас задумался, а.
Проверить существование таблицы mdb
Как проверить, существует ли в базе mdb нужная таблица? Есть такой способ.
Glassfish4. Проверить существование базы и таблицы
Можно ли как-то проверить существование базы и таблицы? Такие запросы вообще существуют?
Понимаю, что некропощу но дополню.
Код от мистера Agmassmagist верный, но не совсем полный (так работать не будет).
Работать будет, если прописать SQL запрос полностью:
Andrews32, первое сообщение и с таким душком
Зачем так «измываться» над здравым смыслом? Сделайте хотя бы так:
Похоже, кто-то слишком пристально ищет соринки в чужом здравым смысле,
не замечая бревнА в своём глазу.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как проверить существование записи?
Добрый вечер. Есть таблица: CREATE TABLE tbl (id INTEGER PRIMARY KEY AUTOINCREMENT, date_latest.
Как проверить существование объекта
Есть объект «data.response.body», иногда его может и не быть. Как собсно это проверить? если его.
Как проверить существование файла?
Здравствуйте, у меня в событие FormCreate записан код, который читает строки из текстовое файла и.
MySQL: как проверить существование таблицы
Vladimir Kochetkov
Нужно проверить существование таблицы в что-то типа такой структуре:
IF TABLE EXISTS tabl_name THEN…
END IF
Не могу найти в мануале как это решить…
Дополнено (1). to gmaneye
С чего же это неправильный тон программирования?
Или для вас правильный тон использовать Oracle для четырех типов запросов SELECT, INSERT, UPTADE и DELETE?
Короче написал что-то вроде такого:
SELECT COUNT(1) INTO tabl_found
FROM information_schema.tables
WHERE table_name = tabl_name
AND schema = DATABASE()
LIMIT 1;
IF tabl_found = 1 THEN…
END IF
Дополнено (2). короче все равно не работает чего-то
tabl_found принимает значение DEFAULT, а не 0 или 1
Дополнено (3). Исправил:
SELECT COUNT(1) INTO tabl_found
FROM information_schema.tables
WHERE table_name = tabl_name
AND table_schema = DATABASE();
Дополнено (4). WebMikE,
а причем тут php?
gmaneye
Вообще это неправильный тон программирования.
Для чего такое?
Lyoha_22
лучший ответ SELECT * FROM information_schema.tables WHERE table_name = ‘Имя таблицы’ LIMIT 1
dasm32
SELECT * FROM information_schema.tables WHERE table_name = ‘таблица’ LIMIT 1
Если есть доступ к information_schema
SHOW TABLES FROM база LIKE ‘таблица’ вот еще вариант
WebMikE
Вот есть такая функция:
http://nopaste.info/58474a7f3d.html
KOCT
$query = mysql_query(«SELECT * FROM ТАБАНЕЙМ
//а дальше
if($query) <
Проверьте, существует ли таблица в SQL Server
Я хотел бы, чтобы это было окончательное обсуждение того, как проверить, существует ли таблица в SQL Server 2000/2005 с помощью инструкции SQL.
когда вы Google для ответа, вы получите столько разных ответов. Есть ли официальный / назад и вперед совместимый способ сделать это?
здесь два возможных способа сделать это. Какой из них является стандартным / лучшим способом сделать это?
в MySQL обеспечивает простой
заявление. Я ищу нечто подобное.
22 ответов
для таких запросов всегда лучше использовать INFORMATION_SCHEMA вид. Эти представления (в основном) стандартны для многих различных баз данных и редко меняются от версии к версии.
чтобы проверить, существует ли таблица, используйте:
также обратите внимание, что если по какой-либо причине вам нужно проверить временную таблицу, вы можете сделать это:
мы всегда использовать OBJECT_ID стиль, сколько я помню
пожалуйста, смотрите ниже подходы,
подход 1: Использование INFORMATION_SCHEMA.Вид таблиц
мы можем написать запрос, как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.
подход 2: Использование функции OBJECT_ID ()
мы можем использовать функцию OBJECT_ID (), как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.
Подход 3: Использование системный.Просмотр Каталога Объектов
мы можем использовать Sys.Посмотреть каталог объектов для проверки существования таблицы, как показано ниже:
подход 4: Использование sys.Вид Каталога Таблиц
мы можем использовать Sys.Представление каталога таблиц для проверки существования таблицы, как показано ниже:
подход 5: Избегайте использования sys.системной таблице sysobjects таблице
мы должны избегать использования sys.системной таблице sysobjects стол непосредственно прямой доступ к нему будет устаревшим в некоторых будущих версиях Sql Server. Согласно ссылке Microsoft BOL, Microsoft предлагает использовать представления каталога sys.объекты/системы.таблицы вместо sys.системная таблица sysobjects напрямую.