Вы можете столкнуться с проблемами при обновлении, если попытаетесь преобразовать некоторые строки в те же значения, что и в существующие строки.Независимо от того, что вы делаете в обновлении, ограничение по-прежнему будет применяться.
Если у вас есть связанные таблицы и включено каскадное обновление, у вас могут возникнуть проблемы с блокировкой, если нужно заблокировать много записей.Если у вас не включено каскадное обновление, у вас могут возникнуть проблемы, когда PK не может быть изменен до тех пор, пока вы не разорвете эти отношения и не вернете их после ручного изменения всех связанных таблиц на новое значение.Эта задача, в любом случае, должна выполняться только в однопользовательском режиме в непиковые часы.
Лично, если вам нужно сменить PK, дизайн вашей базы данных хрупок и может вызвать проблемы в будущем.Особенно с многоколоночным ключом.Если это единовременное, редкое изменение, продолжайте и работайте над проблемами.В противном случае, возможно, пришло время решить, является ли лучшим выбором наличие суррогатного ключа в качестве PK и уникального индекса для нескольких столбцов.Многоколоночные PK создают гораздо большие индексы не только для основной таблицы, но и для дочерних таблиц, они могут создавать сложные проблемы, когда вам нужно обновить один из столбцов, и они влияют на производительность для объединений.Вообще я их не фанат.И, конечно, нет, если есть некоторые из этих столбцов, которые нужно будет обновлять с любой частотой (и под этим я подразумеваю любое крупное обновление чаще, чем раз в год - одна или две записи в порядке, но если вы запускаете обновление, как описано чащераз в год нужно пересмотреть дизайн на мой взгляд.).