В процессе сборки мы запускаем sqlldr, чтобы заполнить нашу базу данных некоторыми примерами данных. На каждой таблице, к которой обращается sqlldr, внешние ключи отключаются после запуска sqlldr.
В соответствии с этой запиской Ask Tom :
sqlldr отключит только ограничения
которые относятся к другим таблицам (например:
внешние ключи) НЕ первичный ключ.
SQLLDR только повторно включит
ограничения, которые он отключил, а не
те, которые вы сделали сами.
Я бы сказал, что мои внешние ключи должны быть включены.
Все наши контрольные файлы sqlldr похожи на этот:
options (direct=true, rows=20000)
load data
infile "clinical_code.txt"
append
into table clinical_code
fields terminated by "|"
trailing nullcols
Число rows
намеренно больше, чем количество строк в файле данных, потому что, если оно было меньше, повредило бы мой первичный ключ .
Почему sqlldr не разрешает повторное включение моих внешних ключей, как кажется из документации?
Я прекрасно пишу SQL, чтобы при необходимости снова включить индексы. Я хотел бы знать, почему это происходит.
Использование обычного пути загрузки - хорошая альтернатива, но это добавило бы 2 минуты к нашему процессу сборки, и я хотел бы избежать этого, если это возможно.