Deluxe-mode loads use regular single-row inserts, which add rows to a table that can contain indexes. The insert modifies each index for each row during the load. The insert also checks all constraints for each row. A deluxe-mode load allows you to keep the table unlocked during the load so other users can continue to use it.
You also can use deluxe mode on tables that do not contain indexes; for instance, if you want to have complete recoverability or maintain access to tables during a load.
To prepare a table for deluxe-mode load, create the internal table as type OPERATIONAL or STANDARD, and create the external table with the optional keyword DELUXE.
BEGIN WORK; LOCK TABLE employee IN SHARE MODE;
CREATE EXTERNAL TABLE emp_ext SAMEAS employee USING ( DATAFILES ("DISK:cogroup_all:/work2/mydir/emp%c.dat"), REJECTFILE "/work2/mydir/emp%c.rej", DELUXE );
You should not start a violations table and then set constraints to deferred. (You also cannot start a violations table when constraints are already set to deferred.) For more information on the violations table and deferred constraints, see the IBM Informix: Guide to SQL Syntax.
INSERT INTO employee SELECT * FROM emp_ext;
COMMIT WORK;