#banco de dados mysql

1 messages · Page 1 of 1 (latest)

radiant hull
#

Pessoal eu não sei se eu estou errando na modelagem ou no relacionamento, mas tentando fazer este insert sempre da esse erro,

Eu li alguns forum mas ainda não consegui entender onde estou errando???

insert into saida (id_categoria, valor, data_saida, obs_saida) values (1, 10, '2023-02-16', 'CHOCOLATE')

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (banco_02.balanco, CONSTRAINT fk_balanco_in_categoria FOREIGN KEY (id_categoria) REFERENCES categoria (id)) 0.000 sec

limber ore
#

aparente q não exista dados dentro da table Categoria

radiant hull
#

tem apenas 1 mas ele existe

raw ingot
#

Tem que ver onde a chave estrangeira fk_balanco_in_categoria tá definida, o problema é nela

sudden moss
#

manda um o resultado de SHOW CREATE TABLE saida;

radiant hull
#

'CREATE TABLE saida (id int NOT NULL AUTO_INCREMENT,
id_categoria int NOT NULL,
valor int NOT NULL,
data_saida date NOT NULL,
obs_saida varchar(100) NOT NULL,

        PRIMARY KEY (`id`),
        KEY `fk_saida_in_categoria_idx` (`id_categoria`),
            CONSTRAINT `fk_saida_in_categoria` 
            FOREIGN KEY (`id_categoria`) 
        REFERENCES `categoria` (`id`)
         ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3'
raw ingot
radiant hull
# raw ingot manda a saída de `SHOW CREATE TABLE balanco;`

'CREATE TABLE balanco (id int NOT NULL AUTO_INCREMENT,
id_categoria int NOT NULL,
valor int NOT NULL,

                     PRIMARY KEY (`id`),
                     KEY `fk_balanco_in_categoria_idx` (`id_categoria`),
                     CONSTRAINT `fk_balanco_in_categoria` FOREIGN KEY (`id_categoria`) 
             REFERENCES `categoria` (`id`) 
                     ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3'
raw ingot
#

mt esquisito

#

simulei essas suas tabelas aqui e consegui inserir de boas

#
CREATE TABLE categoria (
    id int NOT NULL AUTO_INCREMENT,
    descricao varchar(100) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE saida (
    id int NOT NULL AUTO_INCREMENT,
    id_categoria int NOT NULL,
    valor int NOT NULL,
    data_saida date NOT NULL,
    obs_saida varchar(100) NOT NULL,
    PRIMARY KEY (id),
    KEY fk_saida_in_categoria_idx (id_categoria),
    CONSTRAINT fk_saida_in_categoria FOREIGN KEY (id_categoria) REFERENCES categoria (id)
);

CREATE TABLE balanco (
    id int NOT NULL AUTO_INCREMENT,
    id_categoria int NOT NULL,
    valor int NOT NULL,
    PRIMARY KEY (id),
    KEY fk_balanco_in_categoria_idx (id_categoria),
    CONSTRAINT fk_balanco_in_categoria FOREIGN KEY (id_categoria) REFERENCES categoria (id)
);

INSERT INTO categoria (descricao) VALUES ('COMPRAS');
insert into saida (id_categoria, valor, data_saida, obs_saida) values (1, 10, '2023-02-16', 'CHOCOLATE');