Estou tentando pegar o id de uma tabela chamada 'pessoa' que é auto_increment e colocar na tabela 'pessoa_juridica', que não é auto_increment, mas o id_pessoa é FK nesta última tabela.
Como faço pra pegar esse id incrementado pra colocar na outra tabela ?
As duas tabelas e o código do método que insere estão abaixo:
CREATE TABLE pessoa (
id_pessoa integer unsigned not null auto_increment,
nome varchar(40) not null,
fone varchar(15) not null,
tipo_pessoa enum('J','F') not null,
primary key (id_pessoa)
)ENGINE=InnoDB;
CREATE TABLE pessoa_juridica (
id_pessoa_jur integer unsigned not null,
nome_fant varchar(40) not null,
fundacao date not null,
cnpj varchar(15) not null,
e_clube enum("S","N") not null
)ENGINE=InnoDB;
ALTER TABLE pessoa_juridica
ADD CONSTRAINT FK_pessoa_jur FOREIGN KEY (id_pessoa_jur) REFERENCES pessoa (id_pessoa) ON UPDATE CASCADE ON DELETE CASCADE;
Pergunta
Jesc
Bom dia a todos.
Estou tentando pegar o id de uma tabela chamada 'pessoa' que é auto_increment e colocar na tabela 'pessoa_juridica', que não é auto_increment, mas o id_pessoa é FK nesta última tabela.
Como faço pra pegar esse id incrementado pra colocar na outra tabela ?
As duas tabelas e o código do método que insere estão abaixo:
CREATE TABLE pessoa (
id_pessoa integer unsigned not null auto_increment,
nome varchar(40) not null,
fone varchar(15) not null,
tipo_pessoa enum('J','F') not null,
primary key (id_pessoa)
)ENGINE=InnoDB;
CREATE TABLE pessoa_juridica (
id_pessoa_jur integer unsigned not null,
nome_fant varchar(40) not null,
fundacao date not null,
cnpj varchar(15) not null,
e_clube enum("S","N") not null
)ENGINE=InnoDB;
ALTER TABLE pessoa_juridica
ADD CONSTRAINT FK_pessoa_jur FOREIGN KEY (id_pessoa_jur) REFERENCES pessoa (id_pessoa) ON UPDATE CASCADE ON DELETE CASCADE;
Codigo:
public void salvarPJuridica(String nome, String nome_fant, String fundacao, String cnpj, String fone,int clube){
final String tipo="J";
String resp="";
int num=0,num1=0;
if(clube == 0)
resp="S";
else if(clube == 1)
resp="N";
String SQL = "INSERT INTO pessoa VALUES("
+num
+",\""+nome+"\""
+",\""+fone+"\""
+",\""+tipo+"\")";
String SQL1 = "INSERT INTO pessoa_juridica VALUES("
+num1
+",\""+nome_fant+"\""
+",\""+fundacao+"\""
+",\""+cnpj+"\""
+",\""+resp+"\")";
String SQL2 = "SELECT id_pessoa FROM pessoa ORDER BY id_pessoa";
try {
int result = stm.executeUpdate(SQL);
}catch (Exception e) {}
try{
rs=stm.executeQuery(SQL2);
rs.last();
num1=rs.getInt("id_pessoa");
}catch(Exception e){
JOptionPane.showMessageDialog(null,"ERRO - Não foi possível pegar o id_pessoa\n - "+e.toString());
}
try {
int result1 = stm.executeUpdate(SQL1);
if( result1>=1)
JOptionPane.showMessageDialog(null,"Cadastrado realizado com sucesso.");
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"ERRO - Cadastrado falhou - "+e.toString());
}
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados