Ibm Db2 Error Codes 803
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss http://stackoverflow.com/questions/21479931/db2-sql-error-803-when-inserting-into-two-related-tables the workings and policies of this site About Us Learn more about Stack Overflow the company Business Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping db2 sql each other. Join them; it only takes a minute: Sign up DB2 SQL-Error: -803 when inserting into two related tables up vote 2 down vote favorite I have two tables which are created with this statements: CREATE TABLE Behandlungsvorgang ( patientId SMALLINT NOT NULL REFERENCES Patient(id), datum DATE NOT NULL, notizen VARCHAR(100), PRIMARY KEY (patientId, datum) ); CREATE db2 sql error TABLE behandelt ( arztLogin VARCHAR(50) NOT NULL REFERENCES Arzt(login), behandlungsDatum DATE NOT NULL, behandlungsPatientId SMALLINT NOT NULL, medikamntPzn SMALLINT NOT NULL REFERENCES Medikament(pzn), krankheitName VARCHAR(50) NOT NULL REFERENCES Krankheit(name), PRIMARY KEY (arztLogin, behandlungsDatum, behandlungsPatientId, medikamntPzn, krankheitName), FOREIGN KEY (behandlungsDatum, behandlungsPatientId) REFERENCES Behandlungsvorgang(datum, patientId) ); And I have a method which should insert data into this tables. It always inserts new data so before inserting into behandelt I have to insert into Behandlungsvorgang to fulfill the foreign key requirements. The method looks like this: public void add(TreatmentProcess tp) throws StoreException { try { PreparedStatement psBehandlungsvorgang = connection.prepareStatement("INSERT INTO Behandlungsvorgang (patientId, datum, notizen) VALUES (?, ?, ?)"); psBehandlungsvorgang.setInt(1, tp.getPatientId()); psBehandlungsvorgang.setDate(2, tp.getDate()); psBehandlungsvorgang.setString(3, tp.getNotes()); psBehandlungsvorgang.executeUpdate(); PreparedStatement psBehandelt = connection.prepareStatement("INSERT INTO behandelt (arztLogin, behandlungsDatum, behandlungsPatientId, medikamntPzn, krankheitName) VALUES (?, ?, ?, ?, ?)"); for (Drug drug : tp.getDrugs()) { psBehandelt.setString(1, tp.getDoctor()); psBehandelt.setDate(2, tp.getDate()); psBehandelt.setInt(3, tp.getPatientId()); psBehandelt.setInt(4, drug.getPzn()); psBehandelt.setString(5, tp.getDisease()); psBehandelt.addBatch(); } psBehandelt.executeBatch(); } catch (SQLException e) { throw new StoreException(e); } } I always get an exception saying de.unidue.inf.is.stores.StoreException: com.ibm.db2.jcc.am.go: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, S