Вопросы с тегом «alter-table»

Оператор SQL, используемый для изменения существующего табличного объекта.

56
Почему ALTER COLUMN в NOT NULL вызывает огромный рост файла журнала?

У меня есть таблица с 64-метровыми строками, занимающая 4,3 ГБ на диске для своих данных. Каждая строка составляет около 30 байтов целочисленных столбцов плюс переменный NVARCHAR(255)столбец для текста. Я добавил столбец NULLABLE с типом данных Datetimeoffset(0). Затем я ОБНОВИЛ этот столбец для...

51
Как мне поменять местами таблицы в MySQL?

Предположим, у меня есть таблица foo, которая содержит статистику, которая вычисляется время от времени. Он активно используется другими запросами. Вот почему я хочу вычислить более свежую статистику foo_newи поменять ее, когда вычисления будут готовы. я мог бы сделать ALTER TABLE foo RENAME...

28
Добавление столбцов в производственные таблицы

Каков наилучший способ добавления столбцов в большие производственные таблицы в SQL Server 2008 R2? Согласно книгам Microsoft в Интернете: Изменения, указанные в ALTER TABLE, применяются немедленно. Если изменения требуют изменения строк в таблице, ALTER TABLE обновляет строки. ALTER TABLE получает...

27
Мне нужно запустить VACUUM FULL без свободного места на диске

У меня есть одна таблица, которая занимает около 90% дискового пространства на нашем сервере. Я решил оставить несколько столбцов, чтобы освободить место. Но мне нужно вернуть место под ОС. Проблема, однако, в том, что я не уверен, что произойдет, если я запусту VACUUM FULL и не хватит свободного...

25
Изменение столбца с NOT NULL на NULL - что происходит под капотом?

У нас есть таблица с 2,3B строк в нем. Мы хотели бы изменить столбец с NOT NULL на NULL. Столбец содержится в одном индексе (не кластерный или PK-индекс). Тип данных не меняется (это INT). Просто обнуляемость. Утверждение следующее: Alter Table dbo.Workflow Alter Column LineId Int NULL Операция...

24
Изменить таблицу в живых производственных базах

Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 7 лет назад . Как наиболее «популярная» (MySQL, Postgres ...) система баз данных обрабатывает изменение таблиц в действующих производственных базах...

21
Как добавить столбец версии строки в большую таблицу с минимальным временем простоя

Используя SQL Server 2008 и более поздние версии, я хочу добавить столбец rowversion в большую таблицу, однако, когда я просто ALTER TABLE [Tablename] ADD Rowversion [Rowversion] NOT NULL Тогда таблица будет недоступна для обновления слишком долго. Какие стратегии я могу использовать, чтобы...

18
Таблицы, оптимизированные для памяти - их действительно сложно поддерживать?

Я исследую преимущества обновления с MS SQL 2012 до 2014 года. Одна из главных особенностей SQL 2014 - это оптимизированные для памяти таблицы, которые, очевидно, делают запросы очень быстрыми. Я обнаружил, что есть несколько ограничений для таблиц, оптимизированных для памяти, таких как: Нет...

16
Почему я бы предпочел ALGORITHM = COPY вместо ALGORITHM = INPLACE?

С тех пор как в MySQL 5.6 был введен интерактивный DDL, ALTER TABLEкоманда может иметь либо одну, ALGORITHM=INPLACEлибо ALGORITHM=COPYуказанную. Обзор онлайн DDL отмечает , что, по умолчанию, INPLACEиспользуется везде , где это возможно, и предполагает (никогда не вполне изложив его) , что...

16
Сбросить значение IDENTITY

У меня есть таблица со столбцом IDENTITY. В процессе разработки я время от времени удаляю строки и добавляю их снова. Но значения IDENTITY всегда увеличивались и не начинались с 1, когда я снова их добавлял. Теперь мой идентификатор идет от 68 -> 92, и это приводит к сбою моего кода. Как мне...

15
База данных «заморожена» на ALTER TABLE

Наша производственная среда просто замерла сегодня утром на некоторое время, изменяя таблицу, фактически добавляя столбец. Оскорбляющий SQL:ALTER TABLE cliente ADD COLUMN topicos character varying(20)[]; * Для входа в нашу систему требуется выбрать из той же таблицы, чтобы никто не мог войти во...

14
ALTER TABLE для большой таблицы с индексированным столбцом

У меня есть большая таблица со столбцом VARCHAR (20), и мне нужно изменить его, чтобы он стал столбцом VARCHAR (50). Как правило, выполнение ALTER TABLE (добавление TINYINT) для этой конкретной таблицы занимает около 90-120 минут, поэтому я могу сделать это только в субботу или в воскресенье...

14
Нужно ли удалять уникальный индекс при изменении размера столбца nvarchar? И будет ли таблица заблокирована при воссоздании индекса?

В нашей базе данных существует большая таблица, которая более или менее выглядит так: CREATE TABLE dbo.production_data ( pd_id BIGINT PRIMARY KEY, serial NVARCHAR(16) NOT NULL UNIQUE, ... ); но теперь размер последовательного поля стал слишком низким, поэтому я хочу изменить его на 32. Средство...

14
Почему простая команда ALTER TABLE занимает так много времени в таблице с полнотекстовым индексом?

У меня есть большая (~ 67 миллионов строк) таблица имен и значений, которая имеет полнотекстовую индексацию по DataValueстолбцу. Если я попытаюсь запустить следующую команду: ALTER TABLE VisitorData ADD NumericValue bit DEFAULT 0 NOT NULL; Он выполняется в течение 1 часа 10 минут и по-прежнему не...

13
Изменить все таблицы в базе данных с помощью одной команды

Существует ли однострочная или однострочная команда для изменения всех таблиц в базе данных. Я хотел бы выполнить эту команду в каждой таблице в базе данных: ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8; Моя цель - изменить кодировку от latin1 до utf8 для всех таблиц. ОБНОВЛЕНИЕ: СУБД...

13
Самый быстрый способ изменить тип данных индексированного ключа таблицы 600 ГБ с INT на BIGINT

Мне нужно изменить тип данных с INT на BIGINT в таблице MySQL 600 ГБ. Столбец имеет уникальный индекс. Я мог бы быть хорош с неподписанным INT, но я предполагаю, что изменение к этому или BIGINT будет в значительной степени той же самой болью. Двигатель стола - InnoDB. Что будет проще: ALTER TABLE...

12
MySQL - самый быстрый способ ALTER TABLE для InnoDB

У меня есть таблица InnoDB, которую я хочу изменить. Таблица содержит ~ 80 миллионов строк и выходит из нескольких индексов. Я хочу изменить имя одного из столбцов и добавить еще несколько индексов. Какой самый быстрый способ сделать это (при условии, что я могу страдать даже из-за простоя - сервер...

12
Могу ли я переименовать значения в столбце MySQL ENUM в одном запросе?

Предположим, у меня есть таблица базы данных с ENUM('value_one','value_two'). Я хочу изменить это на ENUM('First value','Second value'). В настоящее время я делаю это следующим образом: ALTER TABLE `table` MODIFY `column` ENUM('value_one','value_two','First value','Second value'); UPDATE `table`...

12
Отбрасывание ограничения (индекса) на столбце

Как я могу изменить тип таблицы с индексом? Я попытался сделать столбец alter для пустой таблицы, чтобы изменить тип с даты на varchar (15), и получил сообщения о том, что у него есть зависимости от столбца (который оказался индексами). Я смог легко обойти это локально, щелкнув правой кнопкой мыши...