Jump to content

Problema ao importar base de dados


Recommended Posts

Posted (edited)

Boas estou com um problema quando introduzo valores na minha base de dados, é o seguinte:

O Script:

drop database if exists safebox;
create database safebox;
use safebox;
create table Pais
(
cod_pais int(50) primary key,
nome varchar(50)
) engine=innodb;

create table Registo
(
username varchar(50) primary key,
password varchar(50),
primeiro_nome varchar(50),
ultimo_nome varchar(50),
email varchar(50),
anonasc int(5),
nacionalidade int(50),
sexo varchar(50),
foreign key(nacionalidade) references Pais(cod_pais)
) engine=innodb;
create table Partilha
(
num_partilha int(50) auto_increment primary key,
nome_amigo varchar(50),
data_partilha date,
foreign key(nome_amigo) references Registo(username)
)engine=innodb;
create table Formato
(
id_formato int(50) primary key,
nome varchar(50)
) engine=innodb;

create table Ficheiro
(
id_ficheiro int(50) auto_increment primary key,
num_utilizador int(50),
nome varchar(50),
tamanho int(50),
id_formato int(50),
foreign key(id_formato) references Formato(id_formato)

)engine=innodb;
Insert into Registo values (
'Admin', 'admin007', 'Bruno', 'Vieira', 'brunobmsv@hotmail.com', '1994', '1', 'Masculino');

quando importo esse script aparece o seguinte erro:

Erro
Comando SQL:
INSERT INTO Registo
VALUES (
'Admin', 'admin007', 'Bruno', 'Vieira', 'brunobmsv@hotmail.com', '1994', '1', 'Masculino'
);
Mensagens do MySQL : Documentação
#1452 - Cannot add or update a child row: a foreign key constraint fails (`safebox`.`registo`, CONSTRAINT `registo_ibfk_1` FOREIGN KEY (`cod_pais`) REFERENCES `pais` (`cod_pais`))

alguem sabe o que resolver isto?

Edited by apocsantos
Posted

Boa noite,

Não podes inserir o valor 1 que está relacionado com a tabela pais, se esse valor não existir na tabela pais.

DROP DATABASE IF EXISTS safebox;
CREATE DATABASE safebox;
USE safebox;
CREATE TABLE Pais
(
cod_pais INT(50) PRIMARY KEY,
nome VARCHAR(50)
) engine=innodb;
INSERT INTO pais VALUES ('1', 'Portugal');

CREATE TABLE Registo
(
username VARCHAR(50) PRIMARY KEY,
password VARCHAR(50),
primeiro_nome VARCHAR(50),
ultimo_nome VARCHAR(50),
email VARCHAR(50),
anonasc INT(5),
nacionalidade INT(50),
sexo VARCHAR(50),
FOREIGN KEY(nacionalidade) REFERENCES Pais(cod_pais)
) engine=innodb;
CREATE TABLE Partilha
(
num_partilha INT(50) AUTO_INCREMENT PRIMARY KEY,
nome_amigo VARCHAR(50),
data_partilha DATE,
FOREIGN KEY(nome_amigo) REFERENCES Registo(username)
)engine=innodb;
CREATE TABLE Formato
(
id_formato INT(50) PRIMARY KEY,
nome VARCHAR(50)
) engine=innodb;

CREATE TABLE Ficheiro
(
id_ficheiro INT(50) AUTO_INCREMENT PRIMARY KEY,
num_utilizador INT(50),
nome VARCHAR(50),
tamanho INT(50),
id_formato INT(50),
FOREIGN KEY(id_formato) REFERENCES Formato(id_formato)

)engine=innodb;
INSERT INTO Registo VALUES (
'Admin', 'admin007', 'Bruno', 'Vieira', 'brunobmsv@hotmail.com', '1994', '1', 'Masculino');

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.