Ola,
Estou fazendo o seguinte, PARA CADA 1 INSERÇAO NA TABELA PAI (INFO), FAZ 2 INSERÇOES NA TABELA FILHO (ADDINFO)
OU SEJA,
±-------±--------+
|pai |filho |
|--------|--------- |
|1 |1 |
|1 |2 |
|2 |3 |
|2 |4 |
±-------±--------+
O metodo esta assim:
public static void populateDatabase(int n){
// n é meu parametro de entrada, a qtd de insercoes que serao feitas
int x= n*2;
for (int i=1;i<=n;i++){
//como nao é mais autoincremento, insere a variavel i do laço.
String sql =
"INSERT INTO INFO (COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ i +",'DAN MARTINELLI',CURDATE(),100,1)";
try{
Statement st = conn.createStatement();
st.execute(sql);
}catch (SQLException e){
System.err.println(e.getMessage());
System.err.println(e.getStackTrace());
}
for (int a=1;a<=x;a=a+2){
//como nao é mais autoincremento, insere a variavel a do laço e i da tabela pai.
String sql2 =
"INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+a+","+i+",'MARGARET CONORS',CURDATE(),100,1)";
try{
Statement st = conn.createStatement();
st.execute(sql2);
}catch (SQLException e){
System.err.println(e.getMessage());
System.err.println(e.getStackTrace());
}
int b = a+1;
String sql3 =
"INSERT INTO ADDINFO (CODADD,COD,NAME,DATA,VALUE,ANSWER) VALUES ("+ b +","+ i +",'JULY CONORS',CURDATE(),100,1)";
try{
Statement st = conn.createStatement();
st.execute(sql3);
}catch (SQLException e){
System.err.println(e.getMessage());
System.err.println(e.getStackTrace());
}
}//fecha for do filho
}//fecha for do pai
}//fecha o metodo
Qunado executa entrando com apenas registro (n=1) ele funciona mas quando entra com mais de 1 ele da erro de entrada duplicada…
Alguem poderia me ajudar na logica para cada 1 pai , insere 2 filhos.
Muito Muito Obrigado