powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать копию таблиц
10 сообщений из 10, страница 1 из 1
Создать копию таблиц
    #38869932
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача создать таблицы для архива, естественно все можно создать ручками взять каждую таблицу сделать:

Код: sql
1.
2.
CREATE TABLE archive.work_person SELECT * FROM work_person;
CREATE TABLE archive.work_history SELECT * FROM work_history;



Это не сложно даже для 50 существующих таблиц, одна проблема: как только появится новая таблица по нужной маске 'work_*' придется добавлять строчку. Так вот возникла у меня идея, а нельзя ли это дело все автоматизировать? Взять и сделать это все одной строчкой:


Код: plsql
1.
2.
3.
4.
            CREATE TABLE @name:= (SELECT `archive`.TABLE_NAME
            SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
            WHERE TABLE_SCHEMA = 'mybase' AND TABLE_NAME LIKE 'work_%' GROUP BY TABLE_NAME) 
            SELECT * FROM name;



Что-то типа этого, или я надумал сам себе нереального?
Заранее благодарен за подсказку.
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38869941
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте prepared statements
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38869957
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересный совет, но похоже не работает, я пробовал по разному PREPARE не работает как хочется для массива данных и так же не работает если подготавливать данные для создания таблиц:

Код: sql
1.
PREPARE test2 FROM 'CREATE TABLE ? SELECT * FROM ?';





Других идей нет?
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38869988
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnewsPREPARE не работает как хочется для массива данных и так же не работает если подготавливать данные для создания таблицНу так делайте 50 отдельных команд (циклом по курсору, например), для каждой таблицы свою.
PS.alexnewsодна проблема: как только появится новая таблица по нужной маске 'work_*' придется добавлять строчку."проблема" не в этом, а в том, что у вас вообще есть такие таблицы "с маской".
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870012
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews,

вариация создания таблицы "like" - не подходит?
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870658
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109alexnews,

вариация создания таблицы "like" - не подходит?

Извините, не понял идеи. Можно пример?
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870663
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnewsодна проблема: как только появится новая таблица по нужной маске 'work_*' придется добавлять строчку."проблема" не в этом, а в том, что у вас вообще есть такие таблицы "с маской".[/quot]

это почему? Мне нравится иметь в базе таблицы work_* значит рабочие таблицы, data_* значит справочники, sys_* значит системные таблицы, ref_* - referential tables что в этом плохого, подскажите.
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870884
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews,
извиняюсь тормознул на счет like, но все-равно не работает. Спасибо за напоминание.
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870912
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnewsэто почему? Мне нравится иметь в базе таблицы work_* значит рабочие таблицы, data_* значит справочники, sys_* значит системные таблицы, ref_* - referential tables что в этом плохого, подскажите.в таком случае не обращайте внимания
я думал, у вас work_1, work_2 и т.д.
...
Рейтинг: 0 / 0
Создать копию таблиц
    #38870913
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews,

Странно... а у меня - работает. Вам же уже указали, если хотите полный автомат, ну чтобы архив объявлялся сам после появления новой таблички - то "препарированные стейт-менты" ваше всё оно. А в чём выражается "не работает"? :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать копию таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]