Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vinicius Santana_30769

problemas na inserção de uma foreign key

Recommended Posts

bom dia ,gostaria de uma ajuda!

tenho duas tabelas esta primeira:

CREATE TABLE `aluno` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) DEFAULT NULL,
`matricula` varchar(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1;

 

e esta segunda:

CREATE TABLE `curso` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aluno_id` int(11) DEFAULT NULL,
`curso` varchar(20) DEFAULT NULL,
`turma` varchar(50) DEFAULT NULL,
`turno` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `FK_curso_1` (`aluno_id`),
CONSTRAINT `FK_curso_1` FOREIGN KEY (`aluno_id`) REFERENCES `aluno` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;

 

você pode ver que a segunda tabela tem uma FOREIGN KEY 'aluno_id' apontando para a PRIMARY KEY da primeira tabela 'id', eu preciso de algum comando sql para pegar da tabela aluno o ultimo id inserido, por enquanto estou usando este comando:

 

SELECT MAX(id) AS variavelID FROM `aluno`;.

Este comando me permite isso. É como se ele construísse uma "variavel" após o AS ,que no meu caso é variavelID. Gostaria de saber se tem como pegar essa "variavel" e inseri-la na tabela curso?,eu pensei desse modo:

 

SELECT MAX(id) AS variavelID FROM `aluno`;
INSERT INTO `curso` (id, aluno_id , curso, turma, turno )
VALUES (NULL,@variavelID ,'infomatica','2011','noite');

mas não da certo !!

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da para fazer isso direto na linguagem usada, por exemplo se estiver utilizando PDO utilize lastinsertid

 

Cada linguagem tem sua função específica.

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT AUTO_INCREMENT FROM information_schema.`TABLES`
WHERE
	`TABLE_SCHEMA` = 'nome_da_database'
	AND`table_name` = 'nome_da_tabela'

O MySQL possui essa database com todas as informações, não sei explicar direito, hehehe.

 

Mas agora eu tenho uma dúvida, o que acontece quando o usuário já cadastrado resolve fazer outro curso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.