Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Как проверить наличие таблицы в базе?  [new]
mr_max
Member

Откуда:
Сообщений: 1271
Как это можно проверить с помощью Perla или запроса?
5 май 07, 19:22    [4104205]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5663
show tables;

.mahoune.
5 май 07, 21:04    [4104297]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
чайник полный
Member

Откуда:
Сообщений: 46
<Шелезяка[work]> подскажите плиз как проверить существует ли таблица в базе mysql
<Есть> if (mysql_query('DROP TABLE таблица')) echo "таблица существовала";
7 май 07, 13:27    [4107867]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5663
Ага, это лучшая шутка! Её в юмор надо залить! :)

.mahoune.
7 май 07, 14:21    [4108267]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
tru55
Member

Откуда: СПб
Сообщений: 19640
DROP TABLE - енто конечно шутка, но как один из способов, можно делать SELECT к таблице и если ошибка - значить ее нету :)
7 май 07, 15:08    [4108568]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
pectopatop
Member

Откуда:
Сообщений: 765
Show tables from mybase like 'mytable'
11 май 07, 00:03    [4123505]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
ыыы
Guest
tru55
DROP TABLE - енто конечно шутка, но как один из способов, можно делать SELECT к таблице и если ошибка - значить ее нету :)
Ошибка может быть и по другой причине. Например, вам запрещено давать команду "SELECT". Или сама команда написана неправильно. Или упала сама база. Или... куча чего ещё.
13 май 07, 17:40    [4131098]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
Foryou
Member

Откуда: Пермь
Сообщений: 94
Ааа чувак про drop это то хоросё приколол! Лучше как уже было сказано show tables а потом разбирать этот запрос. Не издевайся больше над животом!
14 май 07, 06:49    [4132001]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как проверить наличие таблицы в базе?  [new]
Artem_ru
Member

Откуда:
Сообщений: 11
CREATE TABLE IF NOT EXISTS ИМЯ_ТАБЛИЦЫ
18 мар 09, 13:47    [6943328]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
clgs
Member

Откуда:
Сообщений: 88
А может так
SELECT * FROM information_schema.tables WHERE table_name = 'Имя таблицы' LIMIT 1
10 июл 09, 11:01    [7400606]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 86
function mysql_table_seek($tablename, $dbname)
{
    $table_list = mysql_query("SHOW TABLES FROM `".$dbname."`");
    while ($row = mysql_fetch_row($table_list)) {
        if ($tablename==$row[0]) {
            return true;
        }
    }
    return false;
} 
22 июл 09, 21:46    [7447800]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 86
function mysql_table_seek($tablename, $dbname)
{
    $rslt = mysql_query("SHOW TABLES FROM `{$dbname}` LIKE '" . mysql_real_escape_string(addCslashes($tablename, "\\%_")) . "';");

    return mysql_num_rows($rslt) > 0;
}
23 июл 09, 01:14    [7448469]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
eualexey
Member

Откуда:
Сообщений: 580
Совсем дубовый вариант
Но это если есть доступ к файловой системе - залезть в папку с базами данных и посомтреть есть ли там файл с названием искомой таблицы типа
mytable.myd - данные для таблиц myisam
mytable.myi - индексы для таблиц myisam
mytable.frm - таблицы innodb
23 июл 09, 09:47    [7448957]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 86
в чем дубовость и зачем лезть в папку?
23 июл 09, 10:05    [7449067]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5663
Коль пошла такая пьянка, давайте делать ALTER TABLE, и смотреть, если возникла ошибка, такой таблицы нет.

Это я к тому что топик-то прекрыть пора!

.mahoune.
23 июл 09, 20:00    [7453547]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как проверить наличие таблицы в базе?  [new]
jenyok
Member

Откуда:
Сообщений: 4
#если таблицы нет создать аналог		
CREATE TABLE IF NOT EXISTS `new_table` LIKE real_table;
		SET @IdUse := 	 (SELECT id FROM `new_table` WHERE `param` = 1 ORDER BY id ASC LIMIT 1);  	  		
		IF @IdUse IS NOT NULL THEN
#если таблица есть и в ней есть нужное поле
ELSE 
#если таблица пустая
END IF;
DROP TABLE `new_table`; # удаляем в случаи надобности

Для меня такой маневр пригодился в процедуре (только для примера, переменную сделал системной), сомневаюсь что кроме триггеров функций и процедур где-то можно применить похожий вариант из за IF ELSE...
хотя можно попытаться :
SET @IdUse := 0;
CREATE TABLE IF NOT EXISTS `new_table` LIKE real_table;
		SET @IdUse := 	 (SELECT IF(id IS NOT NULL,1,0) FROM `new_table` WHERE `param` = 1 ORDER BY id ASC LIMIT 1); 

потом
SELECT @IdUse; 
- на выходе имеем 1 если есть и 0 если нету : вот и проверка есть ли таблица, и после того как выясняем пустая ли она, решаем что с ней делать - например
 DROP TABLE `new_table`;

может кому-то пригодиться, если я конечно в тему написал
Сильно не критикуйте, только недавно начал разбираться(
Разница конечно есть в 1 запрос сделать или в 3-4;
3-4 мне кажется актуальным в случаи использования подпрограмм, вместо задергивания php - интерпретатора ! меньше времени на передачу данных и больше нагрузка на mysql - результат очевиден))
18 дек 11, 15:18    [11784705]     Ответить | Цитировать Сообщить модератору
 Re: Как проверить наличие таблицы в базе?  [new]
miksoft
Member

Откуда:
Сообщений: 36325
jenyok,

Ради такого изврата не стоило некропостить.
The INFORMATION_SCHEMA TABLES Table
18 дек 11, 20:41    [11785357]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить