Ir para conteúdo

POWERED BY:

Arquivado

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

tigredonorte

Qual comando usar para saber de onde uma chave primaria veio?

Recommended Posts

Olá pessoal,

 

se eu usar o comando

 

DESCRIBE nome-da-tabela;

 

eu receberei de volta um array contendo informacoes como nome e tipo do dado.

Minha dúvida é a seguinte: eu tenho uma chave estrangeira, e quero gerar para ela um select tipo o do php myadmin. Como faço para saber qual a referencia do campo da tabela.

 

Para ilustrar,

sejam as tabelas:

 

 


CREATE TABLE IF NOT EXISTS `galeria_album` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `titulo` varchar(254) COLLATE utf8_unicode_ci NOT NULL,
 `descricao` text COLLATE utf8_unicode_ci,
 `foto_capa` varchar(254) COLLATE utf8_unicode_ci DEFAULT NULL,
 `tags` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;



CREATE TABLE IF NOT EXISTS `galeria_foto` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `id_album` int(11) NOT NULL,
 `nome` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `titulo` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `local` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `tags` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `descricao` text COLLATE utf8_unicode_ci,
 `url` text COLLATE utf8_unicode_ci NOT NULL,
 PRIMARY KEY (`id`),
 KEY `id_album` (`id_album`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;


ALTER TABLE `galeria_foto`
 ADD CONSTRAINT `galeria_foto_ibfk_1` FOREIGN KEY (`id_album`) REFERENCES `galeria_album` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

 

dai eu faço

DESCRIBE galeria_foto;

 

como descobrir de onde vem id_album?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maneira porca de fazer encontrada....

 

passo a usar o comando

 

SHOW CREATE TABLE galeria_foto

 

com isso recupero a query que criou a tabela

 

depois faço

 

 


Show Index From galeria_foto

 

recupero todos os indices, varro um por um, e procuro na query de criacao a parte que está escrito

 

[font=sans-serif][size=2] CONSTRAINT `galeria_foto_ibfk_1` FOREIGN KEY (`id_album`) REFERENCES `galeria_album` (`id`) ON DELETE CASCADE ON UPDATE CASCADE[/size][/font]

 

e assim recupero a Referencia...

 

Jeito nada prático, tem alguma forma melhor de fazer isso galera?

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.