tabela aparece vazia mysql

MySQL

29/04/2024

Olá, estou fazendo um banco para um trabalho da faculdade mas não consigo passar de um erro que está acontecendo. Preciso relacionar o a tabela vinho com a vinicola. O ID da vinicola está com AUTO_INCREMENT mas se eu não coloco o valor para relacionar na inserção do preenchimento do vinho, a tabela simplesmente aparece vazia, o que posso fazer?

drop database if exists somativa2;
create database somativa2;

create table somativa2.regiao(
	codRegiao bigint primary key ,
    nomeRegiao varchar(100) not null,
    descricaoRegiao text
);

create table somativa2.vinicola(
	codVinicola bigint primary key auto_increment,
    nomeVinicola varchar(100) not null,
    descricaoVinicola text,
    foneVinicola varchar(15),
    emailVinicola varchar(15),
    codRegiao bigint,
    foreign key (codRegiao) references somativa2.regiao(codRegiao)
);

create table somativa2.vinho(
	codVinho bigint primary key auto_increment,
    nomeVinho varchar(50) not null,
    tipoVinho varchar(30) not null,
    anoVinho int not null,
    descricaoVinho text,
    codVinicola bigint,
    foreign key (codVinicola) references somativa2.vinicola(codVinicola)
);

insert into somativa2.regiao(nomeRegiao, descricaoRegiao, codRegiao) values (''Italia'', ''Vinho italiano'', 1);
insert into somativa2.regiao(nomeRegiao, descricaoRegiao, codRegiao) values (''Franca'', ''Vinho frances'',2);
insert into somativa2.regiao(nomeRegiao, descricaoRegiao, codRegiao) values (''Brasil'', ''Vinho brasileiro'', 3);
insert into somativa2.regiao(nomeRegiao, descricaoRegiao, codRegiao) values (''Argentino'', ''Vinho argentino'', 4);
insert into somativa2.regiao(nomeRegiao, descricaoRegiao, codRegiao) values (''Portugal'', ''Vinho portugues'', 5);

insert into somativa2.vinicola(nomeVinicola) values (''Vinicola feliz'');
insert into somativa2.vinicola(nomeVinicola) values (''Vinicola do bom vinho'');
insert into somativa2.vinicola(nomeVinicola) values (''Vinicola Recanto Para'');
insert into somativa2.vinicola(nomeVinicola) values (''Vinicola dos irmaos'');
insert into somativa2.vinicola(nomeVinicola) values (''Vinicola da nona'');

-- Inserção do vinho "Albarino" da vinícola "Vinicola feliz"
INSERT INTO somativa2.vinho(nomeVinho, tipoVinho, anoVinho, codVinicola)
VALUES (''Albarino'', ''seco'', 1975, 1);

-- Inserção do vinho "Bobal" da vinícola "Vinicola do bom vinho"
INSERT INTO somativa2.vinho(nomeVinho, tipoVinho, anoVinho, codVinicola)
VALUES (''Bobal'', ''tinto'', 1990, 2);

-- Inserção do vinho "Carbanet" da vinícola "Vinicola Recanto Para"
INSERT INTO somativa2.vinho(nomeVinho, tipoVinho, anoVinho, codVinicola)
VALUES (''Carbanet'', ''suave'', 1794, 3);

-- Inserção do vinho "Carignan" da vinícola "Vinicola dos irmaos"
INSERT INTO somativa2.vinho(nomeVinho, tipoVinho, anoVinho, codVinicola)
VALUES (''Carignan'', ''seco'', 1962, 4);

-- Inserção do vinho "Malbec" da vinícola "Vinicola da nona"
INSERT INTO somativa2.vinho(nomeVinho, tipoVinho, anoVinho, codVinicola)
VALUES (''Malbec'', ''tinto'', 1892, ''5'');

select v.nomeVinho, v.tipoVinho, v.anoVinho, vi.nomeVinicola
from somativa2.vinho as v
inner join somativa2.vinicola as vi on v.codVinicola = vi.codVinicola;
Gabriel

Gabriel

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

29/04/2024

Você já experimentou fazer um "select * from somativa2.vinicola;" para ver o que foi inserido?

Pode ser que o controle do autoincrement não tenha numerado as linhas como você gostaria e, agora, ao fazer o join, os IDs podem não estar batendo, retornando zero linhas.
GOSTEI 0
Gabriel

Gabriel

29/04/2024

Você já experimentou fazer um "select * from somativa2.vinicola;" para ver o que foi inserido?

Pode ser que o controle do autoincrement não tenha numerado as linhas como você gostaria e, agora, ao fazer o join, os IDs podem não estar batendo, retornando zero linhas.


Então, isso que fico me batendo pq aparentemente a chave funciona o auto_increment, mas na parte do vinho da chave estrangeira aparece nulo. Já testei colocar not null mas também não resolve.
GOSTEI 0
Pedro Bonfim

Pedro Bonfim

29/04/2024

Ih rapaz... boa pergunta. Vou analisar aqui e qualquer coisa digo.
GOSTEI 0
POSTAR