Причина, по которой этот оператор работает в DB2 9.7 для Linux / UNIX / Windows, потому что в DB2 9.7 добавлена функция, называемая автоматической повторной проверкой.Эта функция не существует в DB2 9.1 для z / OS.
Эта функция позволяет создавать объект, который зависит от другого объекта, даже если родительский объект еще не существует.(т.е. вы можете создать представление для таблицы, которая еще не существует, или в вашем случае вы можете определить внешний ключ для таблицы, которая еще не существует).
Вновь созданный объект будет недействительным, и DB2 автоматически повторно проверит его при следующем обращении к нему.Это поведение контролируется параметром конфигурации базы данных auto_reval
.
Как отметил Эль Йобо в комментариях выше, если вам нужно, чтобы в обеих средах выполнялись одинаковые операторы, вам нужно удалить постороннийключевое ограничение из CREATE TABLE и выполните его как отдельный оператор ALTER TABLE.