|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.06.2016, 13:19 | #1 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
ALTER TABLE ADD, 3М+ записей
Приветствую.
У меня возникла задачка: добавить в существующую таблицу поле, у которого должно быть default-значение. В таблице, как понятно из заголовка, больше 3М записей, на что я и напоролся, попробовав это сделать "в тупую", через Код:
Код:
Сейчас мне нужно все же прикрутить значение по-умолчанию к этому столбцу, плюс прописать default во всех уже существующих записях. Варианты прикручивания: 1. В лоб - ИМХО тупиковый путь, займет ОЧЕНЬ много времени 2. Модификация пути "в лоб", примерно так: Код:
3. Перенос через "временную таблицу" - создаю табличку нужной структуры, переношу в неё данные, удаляю старую, переименовываю новую. Тоже не особо приятный вариант, главным образом из-за тех же временных затрат. Для прописывания значения в имеющихся записях единственный вариант, который более-менее проходит, это курсор с коммитом изменений через каждые 10к (например) строк. Можете посоветовать какие-то еще варианты?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
25.06.2016, 13:34 | #2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
просто update tbl set fieldname = 0, чем не устроил?
|
25.06.2016, 13:36 | #3 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Цитата:
вобще почему сразу так не делать. в чем смысл делать поле нул с умолчанием? Последний раз редактировалось come-on; 25.06.2016 в 13:54. |
|
25.06.2016, 14:56 | #4 | ||
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
Цитата:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
||
25.06.2016, 15:12 | #5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
а с таблицей так сделать оно не возражает, да еще на боевой базе.. ну что то както сильно не похоже на правду))
попробовать можно так ;with x as ( select * from tbl with(nolock) ) update x set fieldname =0 а вы пробовали сразу создать поле с не нул и дефаултом? |
25.06.2016, 15:17 | #6 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
либо порциями обновлять, через оффсет а не курсором
и почему чар(1) с дефаул = 0 ? Последний раз редактировалось come-on; 25.06.2016 в 15:20. |
25.06.2016, 15:56 | #7 | ||
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
Цитата:
Мой вопрос можно сформулировать так: У кого какой опыт есть по изменению таблиц с большим количеством записей, и кто что может посоветовать?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Add string list with all user meta in wp-e commerce Custom Fields like wordpress default add/edit post/page admin panel | Alar | WordPress и другие CMS | 1 | 11.03.2012 01:11 |
нужна одно table где все rows from table 1 но и еще добавленных table 2 | Why | Помощь студентам | 0 | 20.09.2010 10:29 |
Поиск "почти" одинаковых записей в Table | хИринах | Помощь студентам | 1 | 22.06.2010 09:19 |
alter table | Neymexa | SQL, базы данных | 2 | 25.03.2010 17:51 |
alter table in ms sql | Neymexa | Помощь студентам | 0 | 25.03.2010 14:29 |