Как проверить существование таблицы sql
Перейти к содержимому

Как проверить существование таблицы sql

  • автор:

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) <

Гость
13.03.2022
вроде того: «CREATE TABLE IF NOT EXISTS userstable (id bigint AUTO_INCREMENT NOT NULL, name varchar(100) NOT NULL, lastName varchar(100) NOT NULL, age tinyint(3) NOT NULL, primary key (id))

Саня
13.03.2022
типа того «CREATE TABLE IF NOT EXISTS userstable (id bigint AUTO_INCREMENT NOT NULL, name varchar(100) NOT NULL, lastName varchar(100) NOT NULL, age tinyint(3) NOT NULL, primary key (id))

  • Как проверить существование колонки в таблице mysql и если её нет то добавить колонку
  • Как быстрым способом перед записью в таблицу проверить существование записываемого значения в поле
  • Mysgli проверка на существование и запись если нету, в mysql запрос работал но как появился этот mysqli перестало, хелп
  • MySQL, хранимые процедуры. Как проверить есть ли в колонке таблицы определенная запись?
  • Php проверка существование записи в базе MYSQL

Новые вопросы

  • Как упорядочивать номера записей в базе данных mysql?
  • Код на PHP + mySQL механизм взаимодействия
  • MySQL Error Not connection задолбала
  • КАК СОЗДАТЬ СТОЛБЕЦ В MYSQL SAMP
  • PHP MySQL выдернуть записи и тут же их удалить вернув результат

Как проверить существует ли таблица sql

В репле psql для просмотра списка таблиц используется команда \d .

Если же репл нам не подходит, можно использовать запрос. В большинстве рекомендаций говорится о том, что стоит делать запрос к самой схеме information_schema.tables . Но такой подход, в данном контексте, неверен, так как выборка покажет только те таблицы, к которым у текущего пользователя есть доступ. Таким образом таблица может существовать, но запрос к information_schema.tables вернёт false .

Рекомендую, при проверке существования таблиц, обращаться напрямую к каталогам pg_class и pg_namespace. Запрос может выглядеть следующим образом:

SELECT EXISTS ( SELECT FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = 'schema_name' AND c.relname = 'table_name' AND c.relkind = 'r' -- only tables ); 

Как проверить существование таблицы sql

Доброго времени суток.

Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.

Re: Как проверить существование таблицы в MS SQL Server CE?

От: pkarklin
Дата: 09.06.05 09:41
Оценка:

Здравствуйте, Eugeny__, Вы писали:

E__>Доброго времени суток.

E__>Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
E__>В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

E__>Спасибо.

и эти варианты не проходят для CE?

Re[2]: Как проверить существование таблицы в MS SQL Server C

От: Eugeny__
Дата: 09.06.05 10:29
Оценка:

Здравствуйте, pkarklin, Вы писали:

P>Здравствуйте, Eugeny__, Вы писали:

E__>>Доброго времени суток.

E__>>Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
E__>>В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

E__>>Спасибо.

P>и эти варианты не проходят для CE?

Вариант вроде запроса к системным таблицам

if exists (select * from dbo.sysobjects where and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
Begin
. some code.
End

не подходит. Запрос «select * from dbo.sysobjects» не выполняется, ошибка «Error parsing query» (впрочем, 90% ошибок на sql ce выглядят точно так же).
Вариант «вызов sp_tables» — что это такое?

Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.

Re[3]: Как проверить существование таблицы в MS SQL Server C

От: Smirnov.Anton
Дата: 09.06.05 11:13
Оценка:

Здравствуйте, Eugeny__, Вы писали:
а если просто

if OBJECT_ID('employee','U') is not null print 'table employee exist'

Re: Как проверить существование таблицы в MS SQL Server CE?

От: Bigger
Дата: 09.06.05 11:16
Оценка:

Здравствуйте, Eugeny__, Вы писали:

E__>Доброго времени суток.

E__>Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
E__>В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

E__>Спасибо.

Выполняем запрос в try

Select 1 from Name_Table

в catch обрабатываем ошибку
в finally работаем

Программист — это шаман. подарите бубен!
Re[4]: Как проверить существование таблицы в MS SQL Server C

От: Eugeny__
Дата: 09.06.05 11:34
Оценка:

Здравствуйте, Smirnov.Anton, Вы писали:

SA>Здравствуйте, Eugeny__, Вы писали:
SA>а если просто
SA>

SA>if OBJECT_ID('employee','U') is not null SA> print 'table employee exist' SA>

Гм..гм.. Это на sql? Под CE точно такого синтаксиса нет. Специально проверил(«Error parsing the query»)

Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.

Re[2]: Как проверить существование таблицы в MS SQL Server C

От: Eugeny__
Дата: 09.06.05 11:40
Оценка:

Здравствуйте, Bigger, Вы писали:

B>Выполняем запрос в try
B>

B>Select 1 from Name_Table B>

B>в catch обрабатываем ошибку
B>в finally работаем

Я сейчас так и делаю. Но хочется по нормальному сделать! Неужели нет способа узнать, существует ли таблица, единым способом через sql для всех субд, не прибегая к хитрым приемам вроде обращения к системным таблицам.

Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.

Re: Как проверить существование таблицы в MS SQL Server CE?

От: nICE
Дата: 09.06.05 11:42
Оценка: 15 (3)

Здравствуйте, Eugeny__, Вы писали:

E__>Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
E__>В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

Для SQL Server CE 2.0:

select * from information_schema.tables

вернет список таблиц БД
дальше понятно что делать
Re[3]: Как проверить существование таблицы в MS SQL Server C

От: Bigger
Дата: 09.06.05 11:48
Оценка:

Здравствуйте, Eugeny__, Вы писали:

E__>Я сейчас так и делаю. Но хочется по нормальному сделать! Неужели нет способа узнать, существует ли таблица, единым способом через sql для всех субд, не прибегая к хитрым приемам вроде обращения к системным таблицам.

Либо так, либо к системным таблицам.
Похоже, что третьего пути нет.

Программист — это шаман. подарите бубен!
Re[2]: Как проверить существование таблицы в MS SQL Server C

От: Аноним
Дата: 03.12.08 14:59
Оценка:

Здравствуйте, nICE, Вы писали:

ICE>Здравствуйте, Eugeny__, Вы писали:

E__>>Никак не могу найти в документации, как можно узнать запросом, существует ли таблица. Может, кто знает, как это сделать?
E__>>В поиске есть только варианты для обычного sql server, а как бы сделать для CompactEdition?

ICE>Для SQL Server CE 2.0:

ICE>запрос
ICE>

ICE>select * from information_schema.tables ICE>

ICE>вернет список таблиц БД
ICE>дальше понятно что делать

спасибо.
select * from information_schema.tables
Where Table_type = ‘BASE TABLE’

Как проверить наличие таблицы в БД?

Допустим я хочу сделать проверку на наличие таблиц в бд и если той или иной таблицы нет создать её, как проверить наличие таблицы в БД?

  • Вопрос задан более трёх лет назад
  • 7790 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 3

было бы большой ошибкой думать

Простите, не удержался 🙂

if(mysql_query("DROP TABLE `таблица`"))

Ответ написан более трёх лет назад

Комментировать

Нравится 12 Комментировать

dj1m

CREATE TABLE IF NOT EXISTS `table_name` (.

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

Immortal_pony

Immortal_pony @Immortal_pony Куратор тега MySQL

SELECT IF(COUNT(*)>0, 'Yes', 'No') AS 'Existance' FROM `information_schema`.`TABLES` WHERE 1 AND `TABLE_SCHEMA`='YOUR SCHEMA' #подставьте сюда название своей схемы AND `TABLE_NAME`='YOUR TABLE' #подставьте сюда название свое таблицы

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *