Тим ответит разумно. Обычно я делаю то же самое: делаю таблицу B идентичной таблице A, за исключением того, что PK в таблице B не является автоинкрементным столбцом.
(Попытка всегда вставлять данные в одном и том же порядке была бы плохой идеей. Это, конечно, было бы хрупко, как заметил Тим. Но на самом деле, это было бы хуже, чем это. Во-первых, вы не можете выполнять массовые вставки. потребуется фиксировать каждую строку индивидуально. Кроме того, обычно вы не можете быть уверены, что следующее используемое значение будет следующим целым числом. СУБД отвечает за выбор следующего значения. Существует множество ситуаций, когда следующее введенное значение не будет следующее более высокое целое число.)
Но важной деталью является то, что СУБД по-разному обрабатывают автоматически увеличивающиеся поля. Во многих случаях поведение автоинкрементного поля заключается в предоставлении значения, если вставленное значение равно NULL, но принятии явного значения, если оно задано. В других случаях база данных будет отклонять попытки вставить значение в автоинкрементное поле.
Так что, если вы сталкиваетесь с первым случаем, тогда на самом деле не проблема оставить таблицу A и таблицу B полностью идентичными. Ваше задание ETL будет вставлять значения в таблицу B, а автоинкрементный характер столбца PK будет просто игнорироваться.