В СУБД Informix столбец SERIAL не изменится после вставки; действительно, вы не можете обновить значение SERIAL вообще. Вы можете вставить новое значение либо с 0 в качестве значения - в этом случае создается новое значение - либо вы можете вставить другое значение. Если другое значение уже существует и существует уникальное ограничение, оно не будет выполнено; если он не существует или если нет уникального ограничения на последовательный столбец, то это будет успешно. Если введенное значение больше наибольшего значения, вставленного ранее, то следующее число, которое будет вставлено, снова будет на одно число больше. Если введенный номер меньше или отрицателен, то следующий номер не влияет.
Таким образом, вы можете выполнить обновление без изменения значения - без проблем. Если вам нужно изменить номер, вам нужно будет удалить и вставить (или вставить и удалить), где вставка имеет ноль. Если вы предпочитаете согласованность и используете транзакции, вы всегда можете удалить, а затем (повторно) вставить строку с тем же номером или с нулем, чтобы вызвать новый номер. Это предполагает, что у вас есть язык программирования, на котором работает SQL; Я не думаю, что вы можете настроить ISQL и Perform, чтобы сделать это автоматически.
Итак, на данный момент я не вижу проблемы в Informix.
С соответствующей версией IDS (все, что поддерживается) вы можете использовать SEQUENCE для управления вставленными значениями. Это основано на синтаксисе и концепции Oracle; DB2 также поддерживает это. Другие СУБД имеют другие эквивалентные (но разные) механизмы для обработки автоматически сгенерированных чисел.