Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перестановка колоночек в таблице / 11 сообщений из 11, страница 1 из 1
16.06.2015, 22:51:29
    #38985273
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Допустим есть таблица и в ней колонки идут так

Код: sql
1.
t { a, b, c, d, e, f, g, x, y, z }



Какую alter инструкцию проще всего выполнить, если я хочу, чтобы они стали в порядке заданном списком:

Код: sql
1.
t { b, y, x, z, a, d, c, f, g, e }
...
Рейтинг: 0 / 0
16.06.2015, 23:07:39
    #38985283
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
LumixКакую alter инструкцию проще всего выполнитьСамый простой способ что-то сделать - не делать этого вовсе. Что относится и к данному случаю. Порядок полей в таблице для вас никакой роли играть не должен. Все равно во всех боевых запросах поля надо перечислять в явном виде.
...
Рейтинг: 0 / 0
17.06.2015, 08:34:30
    #38985375
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Lumix
Какую alter инструкцию проще всего выполнить, если я хочу, чтобы они стали в порядке заданном списком:

Код: sql
1.
t { b, y, x, z, a, d, c, f, g, e }



Самая простая альтер-инструкция - это
Код: sql
1.
select b, y, x, z, a, d, c, f, g, e from t
...
Рейтинг: 0 / 0
17.06.2015, 08:41:30
    #38985382
Перестановка колоночек в таблице
Lumix,

сделай вью по таблице с нужным порядком полей. а таблицу лучше не трогай.
...
Рейтинг: 0 / 0
17.06.2015, 18:29:18
    #38986185
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Может быть тогда кто-нибудь подскажет какой алгоритм лучше использовать для формирования минимального списка альтов??

Я так понимаю у нас есть три альта:
1) вставить в начало, 2) вставить в хвост, 3) вставить после некой позиции

Как выгоднее всего поступить??
1) вставить все по одной методом перемещения в начало??
2) или как-то по-хитрому высчитать альты после некоторой позиции??

если высчитывать альты хитро, то это какой-то интересный интеллектуальный алгоритм на перестановки получается
типа как из множества [a, b, c, ...., n] получить перестановку [c, f, g, ... a] за минимальное количество действий
...
Рейтинг: 0 / 0
17.06.2015, 18:42:06
    #38986201
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Lumix3) вставить после некой позицииНе совсем так. Можно вставить после некоторого явно указанного поля. Что, имхо, позволяет перечислить всю цепочку полей в одном ALTER-е.
Lumixза минимальное количество действийМинимальное количество действие в любом случае одно, т.к. решается созданием копии таблицы с переписыванием всех данных. Причем это будет в любом случае - вручную или с помощью ALTER TABLE.
...
Рейтинг: 0 / 0
17.06.2015, 18:58:18
    #38986216
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
miksoft,

это правда, что перестановка двух колоночек ведет к созданию копии таблицы???
то есть если у нас таблица 5 гб, то для перестановки колоночек потребуется 10 гб или больше????
...
Рейтинг: 0 / 0
17.06.2015, 19:01:25
    #38986221
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Lumixэто правда, что перестановка двух колоночек ведет к созданию копии таблицы???а вы на что рассчитывали? что добрая фея перетасует колоночки, пока сервер отдыхает?
Lumixто есть если у нас таблица 5 гб, то для перестановки колоночек потребуется 10 гб или больше????Потребуется ещё 5, т.е. всего 10.
...
Рейтинг: 0 / 0
17.06.2015, 20:29:05
    #38986263
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
все понятно
перестановка колоночек отменяется...
...
Рейтинг: 0 / 0
17.06.2015, 20:47:41
    #38986270
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
Lumixперестановка колоночек отменяется...Вам про это сразу говорили, что ни к чему это баловство :)

http://dev.mysql.com/doc/refman/5.5/en/alter-table.html In most cases, ALTER TABLE makes a temporary copy of the original table.Там дальше есть список исключений, но изменение порядка полей в него не входит.
...
Рейтинг: 0 / 0
18.06.2015, 22:47:44
    #38987355
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перестановка колоночек в таблице
miksoft http://dev.mysql.com/doc/refman/5.5/en/alter-table.html In most cases, ALTER TABLE makes a temporary copy of the original table.Там дальше есть список исключений, но изменение порядка полей в него не входит.

Огромное спасибо за эту ценную информацию. Почему-то я только сейчас её осознал... но лучше поздно, чем никогда.
Ещё раз благодарю!!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перестановка колоночек в таблице / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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