Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Шохрат
0 / 0 / 1
Регистрация: 13.04.2015
Сообщений: 50
1

Как удалить таблицу зная только половину её названия?

22.09.2016, 11:03. Просмотров 893. Ответов 10
Метки нет (Все метки)

Как удалить таблицу зная только половину её названия в mysql?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2016, 11:03
Ответы с готовыми решениями:

Удалить все базы не зная их названия
Подскажите как можно в SQL удалить все базы не зная их названия?

Как удалить TImage* зная только его Hint?
Всем Привет!:senor: Появилась задачка. есть динамически созданные объекты типа TImage у них есть...

Как отправить файл на сервер через FTP не зная имени а зная только расширение файла?
Доброго времени суток! Очень нужна ваша помощь форумчане.. Пытаюсь отправить файл через FTP на...

Удалить файл, зная только часть его имени
Здравствуйте. Допустим есть файл без расширения "KK123", но каждый раз при перезагрузке...

Удалить первую половину элементов из динамического массива, вторую половину поставить на место первой
удалить первую половину елементов из динамического массива , а вторую половину вставить на место...

10
Meridian21
Zero day
205 / 186 / 61
Регистрация: 16.12.2015
Сообщений: 800
Записей в блоге: 4
22.09.2016, 11:26 2
Шохрат, для начала надо найти ее полное имя. В Mysql, если я правильно помню, есть возможность поискать имя таблицы в sysobjects (аналог all_all_tables в oracle). Будет что-то вроде
SQL
1
SELECT * FROM sysobjects WHERE *TABLE_NAME LIKE **'%name_part%'
* - название поля в sysobjects, в котором хранится имя таблицы.
** - известный кусок имени таблицы.
0
Grossmeister
Модератор
3511 / 2545 / 444
Регистрация: 21.01.2011
Сообщений: 11,121
22.09.2016, 11:26 3
Цитата Сообщение от Шохрат Посмотреть сообщение
Как удалить таблицу зная только половину её названия в mysql
SQL не поддерживает каких-либо паттернов в названиях объектов (таблиц, колонок и проч.). Отчасти это связано с безопасностью. Так что либо указываешь полное наименование (если у тебя есть права на этот объект, то узнать наименование нет проблем), либо никак.
0
Шохрат
0 / 0 / 1
Регистрация: 13.04.2015
Сообщений: 50
22.09.2016, 12:20  [ТС] 4
А можно ли это сделать процедурой на сервере тригером?
0
22.09.2016, 12:20
Grossmeister
Модератор
3511 / 2545 / 444
Регистрация: 21.01.2011
Сообщений: 11,121
22.09.2016, 14:27 5
Цитата Сообщение от Шохрат Посмотреть сообщение
можно ли это сделать процедурой на сервере тригером
Что "это"? Узнать полное наименование или удалить по неполному? И причем тут триггер?
0
Шохрат
0 / 0 / 1
Регистрация: 13.04.2015
Сообщений: 50
22.09.2016, 15:08  [ТС] 6
Можно ли, удалить по неполному названию таблицы через процедуру, которая запускается в определенное время? Извините за неточный вопрос.
0
Grossmeister
Модератор
3511 / 2545 / 444
Регистрация: 21.01.2011
Сообщений: 11,121
22.09.2016, 15:18 7
Цитата Сообщение от Шохрат Посмотреть сообщение
Можно ли, удалить по неполному названию таблицы через процедуру
Любая хранимая процедура общается с таблицами БД посредством SQL. Она не может обратиться к таблице никаким другим способом, минуя SQL.
Я не понял, в чем проблема узнать полное имя таблицы? Если у тебя нет прав на таблицу, то ты ничего с ней не сделаешь, даже если будешь знать полное имя. Если бы это было не так, то грош цена средствам защиты СУБД.
0
Шохрат
0 / 0 / 1
Регистрация: 13.04.2015
Сообщений: 50
22.09.2016, 15:33  [ТС] 8
Хорошо. Тогда как мне создать временную таблицу и удалить ее? У меня задача добавить в базу информацию, через временные таблицы. Проблема в том, что к значению временной таблицы подставляется значение из переменной. Поэтому я не знаю полного названия таблицы.
0
Grossmeister
Модератор
3511 / 2545 / 444
Регистрация: 21.01.2011
Сообщений: 11,121
22.09.2016, 17:01 9
Цитата Сообщение от Шохрат Посмотреть сообщение
Поэтому я не знаю полного названия таблицы
Как узнать название любой доступной таблицы показали выше. Кроме того, процедура, создающая эту таблицу, вполне может записать ее название в другую обычную (не временную) таблицу. Ну и наконец, неужели эта временная таблица никогда не пригодится в дальнейшем. У тебя что, формат добавляемых данных каждый раз другой?
Обычно создание и удаление таблиц (пусть даже временных) на лету - это пример плохого дизайна приложения. Отдельная статья - MS SQL, там это норма.
0
Meridian21
Zero day
205 / 186 / 61
Регистрация: 16.12.2015
Сообщений: 800
Записей в блоге: 4
22.09.2016, 17:52 10
Шохрат, что-то толком ничего не понятно из твоего описания проблемы.
Цитата Сообщение от Шохрат Посмотреть сообщение
У меня задача добавить в базу информацию, через временные таблицы
Как ты будешь это делать? Импортировать данные из внешней среды (Excel например) во временную таблицу, а из нее уже переносить данные в целевую таблицу? Тогда зачем тебе что-то удалять? Просто создай таблицу (можно temp, можно обычную даже), залей туда данных и сделай merge с целевой таблицей. После, можешь удалить времянку или перед следующей заливкой данных сделай truncate table, чтобы удалить все из времянки.
Если тебе зачем-то надо найти и удалить таблицу, то используй системное представление (или как это правильно в mysql называется) sysobjects. Там найдешь свою таблицу и дропнешь ее.
Или напиши подробно что ты хочешь сделать и в чем проблема, а то уже триггеры на удаление пошли какие-то
0
r36
236 / 233 / 42
Регистрация: 16.03.2011
Сообщений: 750
22.09.2016, 19:01 11
Лучший ответ Сообщение было отмечено Шохрат как решение

Решение

SQL
1
2
3
4
SET @SQL = (SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(z.a),';') FROM(SELECT TABLE_NAME AS a FROM information_schema.tables 
WHERE table_schema=DATABASE() AND TABLE_NAME LIKE 'назв_непол%')z);
   PREPARE delSql FROM @SQL;
   EXECUTE delSql;
0
22.09.2016, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2016, 19:01

Как обратиться к файлам в известной директории, но не зная названия самих файлов расширения .txt
Вообщем у меня есть папка "результаты", которая находиться рядом с самим эксешником программы, в...

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

Как скопировать все файлы(всех форматов) с рабочего стола на диск C:\ Не зная путей и названия файлов
Нужно что-бы файлы копировались на С, но не зная путей и прочих уточнений


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru