![]() |
|
Модераторы: skyboy |
![]()
|
|
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Добрый день!
Ребята, можно как-то переименовать таблицу TABLE_1 в TABLE_2 и при этом создать таблицу TABLE_1 со структурой и AI из TABLE_2 ? Пока писал топик, пришел вот к чему:
1. Насколько корректное решение? 2. Проблема в том, что CTL не сохраняет AI (в создаваемой TABLE_1), читал мануал, не нашел как его сохранять. 3. Можно как-то объединить эти запросы, чтобы таблица TABLE_1 блокировалась на все время выполнения? Чтобы туда не вклинился никакой INSERT INTO TABLE_1...? Спасибо! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Что имеется в виду под AI? При чём тут CTL?
Корректное при отсутствии триггеров на исходную таблицу и FK на неё. Иначе нет. А какова вообще цель этого шаманства? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
AUTO_INCREMENT Ну он ведь копирует структуру, думаю, логично будет если и AI может копировать.
Их нет. Сбрасывать логи за месяц по отдельным таблицам для последующей выгрузки их с сервера. Логи нужны именно в таблице, а не в файле, ибо по ним требуется проводить выборки по различным условиям, сортировкам, группировкам и т.д. Можно, конечно, просто создавать новую таблицу с именем типа 'logs_%F_%H', но вариант с постоянным именем таблицы текущих логов мне кажется более правильным. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Тогда внимательнейшим образом изучай MERGE Storage Engine. И столь же внимательно - Range Partitioning. И то, и другое подходит для твоей задачи намного лучше. И гораздо менее геморройно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| _zorn_ |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 2 Всего: 12 |
И автоинкремент идет лесом. Ну и ограничение на использование только MyISAM. С партициями по моему геморройнее чем просто создавать таблицу типа так
|
||||
|
|||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
||||
|
||||
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Пробую так:
Получаю:
|
||||
|
|||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
MERGE Речь идёт о сервере логов. Так что MyISAM - самый подходящий движок. Что же до автоинкремента, то никто не мешает установить начальное значение перед созданием очередной таблицы, причём с запасом, чтобы гарантировать неперекрытие - это же, если не будет вставок с явным заданием значения, гарантирует от коллизий. И в данном случае собственно MERGE используется не для того, чтобы что-то объединять, а для того, чтобы частную таблицу представить как таблицу с жёстко заданным именем. Т.е. фактически алиас уровня серверной логики:
PARTITION Ограничения на движок и проблем с автоинкрементом - нет. Фактически это просто деление на единицы хранения (мультифайловое хранение), причём в автоматическом режиме. Единственное - надо заранее создать эти единицы хранения. Но - один раз на сто лет вперёд создай и забудь навсегда. Добавлено через 3 минуты и 2 секунды Значение автоинкремента задаётся только литералом. Если прёт именно так - можно попробовать PREPARE STATEMENT. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |