2011-03-15 2 views
1

다음과 같이 table1에 삽입 할 수있는 방법은 INSERT INTO table1 (description) VALUES ('Some test description here');입니다. 그러면 자동으로 증가 된 ID가 반환되어 table2에 행을 삽입 할 수 있습니까? 설명이 고유 한 것은 아닙니다. 나는 execute()java를 사용하여 mysql의 테이블에 행을 삽입 할 때 자동으로 증가하는 열 값을 얻는 방법은 무엇입니까?

과 현재 값을 삽입하는 자바 PreparedStatement를 사용하고 난 다음과 같은 테이블 구조가 : 바로 삽입 후이 쿼리가 성공적으로 완료

CREATE TABLE table1 (
    table1ID INTEGER NOT NULL AUTO_INCREMENT, 
    description VARCHAR(255) NOT NULL, 
    CONSTRAINT PK_table1 PRIMARY KEY (table1ID) 
); 

CREATE TABLE table2 (
    table1ID INTEGER NOT NULL, 
    personID INTEGER NOT NULL, 
    CONSTRAINT PK_table2 PRIMARY KEY (table1ID, personID) 
); 

ALTER TABLE table2 ADD CONSTRAINT FK_table1_table2 
FOREIGN KEY (table1ID) REFERENCES table1 (table1ID); 

ALTER TABLE table2 ADD CONSTRAINT FK_table2_person 
FOREIGN KEY (personID) REFERENCES person (personID); 
+0

가능한 복제본 [지금 방금 Java에 추가 된 DB 테이블의 행을 찾는 방법] (http://stackoverflow.com/questions/2018379/how-to-retreive-row-in-db-table-just-added) -now-in-java) –

답변

3

이 시도 :

PreparedStatement st = con.prepareStatement(
        "Insert into table1 (name) values ('test desc')", 
        Statement.RETURN_GENERATED_KEYS); 

      st.executeUpdate(); 

      ResultSet rs = st.getGeneratedKeys(); 
      if(rs.next()) 
      { 
       int data = rs.getRow(); 
       int id = rs.getInt(1); 
      } 

데이터 값을 관찰하십시오. &입니다.

& 검색어를 별도로 실행하지 않아도됩니다.

관련 문제