Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / изменение нескольких таблиц одновременно / 18 сообщений из 18, страница 1 из 1
12.10.2018, 10:36
    #39716530
El_Ninio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Как изменить несколько таблиц через UPDATE.
Есть несколько таблиц, где в каждой таблице есть поле айди пользователя. Как поменять айди пользователей одновременно на всех таблицах, если поменять айди в основной таблице с пользователями.
...
Рейтинг: 0 / 0
12.10.2018, 10:56
    #39716542
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
El_Ninio,

1. Изменения делаются В таблицах, а не НА таблицах.
2. Update изменяет одну и только одну таблицу.
3. Для внесения согласованных изменений В несколько таблиц придуманы транзакции.
...
Рейтинг: 0 / 0
12.10.2018, 11:07
    #39716548
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Sergey Sizov,

Бесполезный лингвист в треде...


El_Ninio

все таблици имеют reference на таблицу пользователей(Id) и вы хотите сменить этот Id и потом у всех остальных?
...
Рейтинг: 0 / 0
12.10.2018, 11:13
    #39716553
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
El_NinioКак поменять айди пользователей одновременно на всех таблицах, если поменять айди в основной таблице с пользователями.ON UPDATE CASCADE не пробовали?
...
Рейтинг: 0 / 0
12.10.2018, 11:17
    #39716556
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
AkinaEl_NinioКак поменять айди пользователей одновременно на всех таблицах, если поменять айди в основной таблице с пользователями.ON UPDATE CASCADE не пробовали?
я как лютый противник каскадов, уточню: а FK дасть поменять ключ при этом?
...
Рейтинг: 0 / 0
12.10.2018, 11:38
    #39716568
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
El_Ninio,

Если это у вас регулярно происходит, то Ваша база сконструирована неверно, если разово, используйте предложение output для update для получения пар старый ИД - новый ИД в ключевой таблице. Предварительно придется удалить внешние ключи в зависимых таблицах и затем восстановить после обновления данных.
...
Рейтинг: 0 / 0
12.10.2018, 11:44
    #39716572
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Владислав КолосовПредварительно придется удалить внешние ключи в зависимых таблицах и затем восстановить после обновления данных.Не проще ли вставить в родительскую таблицу запись с правильным ID, обновить значения в связанных таблицах на новое, после чего - удалить из родительской таблице запись со старым ID?
...
Рейтинг: 0 / 0
12.10.2018, 11:46
    #39716575
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
TaPaKFK дасть поменять ключ при этом?
fiddle .
...
Рейтинг: 0 / 0
12.10.2018, 12:15
    #39716595
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Щукина АннаВладислав КолосовПредварительно придется удалить внешние ключи в зависимых таблицах и затем восстановить после обновления данных.Не проще ли вставить в родительскую таблицу запись с правильным ID, обновить значения в связанных таблицах на новое, после чего - удалить из родительской таблице запись со старым ID?
Хороший вопрос, но в какой-то момент времени может существовать две копии одного договора, например. Зависит от влияния на пользователя системы.
...
Рейтинг: 0 / 0
12.10.2018, 12:32
    #39716602
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
AkinaTaPaKFK дасть поменять ключ при этом?
fiddle .
Ну тогда это самый простой вариант для ТС.
...
Рейтинг: 0 / 0
12.10.2018, 13:27
    #39716643
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
TaPaKтогда это самый простой вариант для ТС.Я бы даже сказал "оно для того и придумано".
...
Рейтинг: 0 / 0
12.10.2018, 13:57
    #39716663
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
AkinaTaPaKтогда это самый простой вариант для ТС.Я бы даже сказал "оно для того и придумано".
ну меня всегда напрягают такие каскадные действия, особенно удаление :)
Но при этом если хотят менять ключи, значить завязали какую-то логику на само значение, что не правильно
...
Рейтинг: 0 / 0
12.10.2018, 14:07
    #39716674
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
TaPaKAkinaпропущено...
Я бы даже сказал "оно для того и придумано".
ну меня всегда напрягают такие каскадные действия, особенно удаление :)
Но при этом если хотят менять ключи, значить завязали какую-то логику на само значение, что не правильноЕсли ключи не суррогатные, то это обычное дело.
...
Рейтинг: 0 / 0
12.10.2018, 14:09
    #39716675
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
iapTaPaKпропущено...

ну меня всегда напрягают такие каскадные действия, особенно удаление :)
Но при этом если хотят менять ключи, значить завязали какую-то логику на само значение, что не правильноЕсли ключи не суррогатные, то это обычное дело.
наверное
...
Рейтинг: 0 / 0
12.10.2018, 14:10
    #39716677
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
iap,

практически, при удалении, если соединение типа "звезда" и звезда большая, да еще и 200+ активных пользователей, то каскадный механизм может привести к превышению времени обслуживания пользователей, чего не происходит при "ручном" удалении.
...
Рейтинг: 0 / 0
12.10.2018, 14:17
    #39716680
El_Ninio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
TaPaK, да
...
Рейтинг: 0 / 0
12.10.2018, 14:18
    #39716682
El_Ninio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Akina, нет. Спс. Попробую.
...
Рейтинг: 0 / 0
12.10.2018, 14:47
    #39716710
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение нескольких таблиц одновременно
Владислав Колосовпрактически, при удалении, если соединение типа "звезда"Практически веселее всего влепить не подумавши ON DELETE CASCADE на selfjoin-таблицу. И превратить удаление одной записи в TRUNCATE...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / изменение нескольких таблиц одновременно / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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