INSERT statement usage
The INSERT statement is used to insert new rows into a table.
Foreign key fields enable the IMS™ Universal JDBC driver to properly position the new record (or segment instance) to be inserted in the hierarchic path using standard SQL processing, similar to foreign keys in a relational database. When inserting a record in a table at a non-root level, you must specify values for all the foreign key fields of the table.
Examples of valid IMS Universal JDBC driver INSERT statements
- Inserting data at the root
- The following statement inserts a new HOSPITAL record:
INSERT INTO PCB01.HOSPITAL (HOSPCODE, HOSPNAME) VALUES ('R1210050000A', 'O''MALLEY CLINIC')
- Inserting data into a specified table in a hierarchic path
- When inserting a record in a table at a non-root level, you must
specify values for all the foreign key fields of the table. The following
statement inserts a new ILLNESS record under a specific HOSPITAL,
WARD, and PATIENT table. In this example, the ILLNESS table has three
foreign keys HOSPITAL_HOSPCODE, WARD_WARDNO, and PATIENT_PATNUM. The
new record will be inserted if and only if there is a HOSPCODE in
the HOSPITAL table with the value of 'H5140070000H', a WARD table
with a WARDNO value of '01', and a PATIENT table with PATNUM value
of 'R1210050000A'.
The following statement inserts a new WARD record under a specific HOSPITAL table. In this example, the WARD table has the foreign key HOSPITAL_HOSPCODE. The new record will be inserted if and only if there is a HOSPCODE in the HOSPITAL table with the value of 'H5140070000H'.INSERT INTO PCB01.ILLNESS (HOSPITAL_HOSPCODE, WARD_WARDNO, ILLNAME, PATIENT_PATNUM) VALUES ('H5140070000H', '01', 'COLD', 'R1210050000A')
INSERT INTO PCB01.WARD (WARDNO, HOSPITAL_HOSPCODE, WARDNAME) VALUES ('0001', 'H5140070000H', 'EMGY')
- Inserting data in a searchable field with subfields
- If a searchable field consists of subfields, you can insert data by setting all the subfield values such that the searchable field is completely populated.
Examples of invalid IMS Universal JDBC driver INSERT statements
- Example of a valid IMS classic JDBC driver INSERT query that is invalid for the IMS Universal JDBC driver
- This statement is invalid for the IMS Universal
JDBC driver because
it does not use the correct syntax to specify a legal value for the
foreign key field (HOSPITAL_HOSPCODE). Note that it is not standard
SQL to use a WHERE clause on an INSERT statement.
INSERT INTO PCB01.WARD (WARDNO, WARDNAME) VALUES ('01', 'EMGY') WHERE HOSPITAL.HOSPCODE = 'H5140070000H'
- Inserting a record at a non-root level without specifying foreign key fields
- In this statement, the WARD_WARDNO foreign key field is missing.
The query will fail because it violates the referential integrity
constraint that all foreign keys must be provided with legal values.
INSERT INTO PCB01.PATIENT (HOSPITAL_HOSPCODE, PATNAME, PATNUM) VALUES ('HW3201', 'JOHN O''CONNER', 'Z800')