Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou com um pequeno problema ao criar uma foreign key
key column 'fk_foto' doesn't exist in table.
uso o CocoaMySql no Mac OSx 1.5.2
Agradeço desde já!
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
>
CREATE TABLE `foto` (
`id` int(11) NOT NULL auto_increment,
`original` varchar(200) NOT NULL,
`thumb` varchar(200) NOT NULL,
`descricao` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `imagem` (
`id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
está ai! valeu
Meu, qual tabela vai receber a FK, a imagem certo?
Você tem que criar um atributo nesta tabela imagem para ser o FK, por exemplo, id_foto.
CREATE TABLE `foto` (
`id_foto` int(11) unsigned NOT NULL auto_increment,
`original` varchar(200) NOT NULL,
`thumb` varchar(200) NOT NULL,
`descricao` varchar(100) NOT NULL,
PRIMARY KEY (`id_foto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
--Seta o atributo id_foto como index primeiro. O tipo da tabela deixe como InnoDB.
CREATE TABLE `imagem` (
`id` int(11) NOT NULL auto_increment,
`id_foto` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `id_foto` (`id_foto`),
CONSTRAINT `FK_foto` FOREIGN KEY (`id_foto`) REFERENCES `foto` (`id_foto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
Testa aí e me fala.
Abraços
Deu certo amigo, ele criou as tabelas, mas agora estou com uma dúvida, como eu faço uma query buscando todas as fotos de tal evento(tabela imagem)?
assim:
select
from imagem a, foto b
where a.id_foto = b.id_foto
Onde que você define qual foto é do evento tal?
você precisa ter esta informacao, dái ali na clausula where você coloca um and evento = xx
Certo?
Abraços
Assim vou explicar oque quero fazer,
vou fazer uma base diferente,
tabela EVENTO, com id do evento, descricao do evento, e fotos do evento(que serão puxadas da table fotos)
tabela FOTOS, id da foto, evento da foto, descricao da foto.
tem como você me explicar como fazer isso?
Obrigdado por tudo :)
Sugiro que faça assim:
Crie a tabela evento, com id do evento auto incremento, nome, data, etc.
Crie um atributo na tabela foto como o numero do evento, como FK.
Ai você faz a query assim:
Select 'seus campos'
from evento a, fotos b, imagem c
where a.id_evento = b.id_evento
and b.id_foto = c.id_foto
and a.id_evento = 'numero do seu evento'
Certo amigo?
OK, vou tentar fazer aqui ja posto o resultado valeu!
Bom dia amigo, concegui fazer a chave estrangeira, criei a tabela EVENTO com eve_codigo, eve_nome e eve_foto e a tabela FOTO com fot_id, foto_original, fot_thumb e relacionei eve_foto com fot_id da tabela FOTO, agora estou com dúvida em como faço um select no EVENTO para trazer os resultados da FOTO.
Obrigado :D
Faz um favor Stone, coloque o script de criação completo de sua tabela pra darmoas uma analisada.
Abraços, Guilherme.