1
My script is as follows. It is giving foreign key error and I cannot solve.
CREATE DATABASE teste;
USE teste;
CREATE TABLE horario (
id_horario int PRIMARY KEY NOT NULL AUTO_INCREMENT,
horario time NOT NULL
);
CREATE TABLE linha (
id_linha int PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome varchar(255) NOT NULL,
codigo varchar(6) NOT NULL,
empresa varchar(50) NOT NULL,
sentido boolean NOT NULL
);
CREATE TABLE `markers` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`name` varchar(60) NOT NULL,
`address` varchar(80) NOT NULL,
`lat` float(10,6) NOT NULL,
`lng` float(10,6) NOT NULL,
`type` varchar(30) NOT NULL,
`cidade` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `markers` (`id`, `name`, `address`, `lat`, `lng`, `type`,
`cidade`) VALUES
(1, 'Bushere', '1344 R. Jose Demetrio Coelho - Centro, Carmo do Cajuru',
-20.189388, -44.767197, 'Ponto', 'Carmo do Cajuru'),
(2, 'Ponto Borracharia do Macarrão', '21 R. São Paulo Centro, Carmo do
Cajuru', -20.189863, -44.767570, 'Ponto', 'Carmo do Cajuru'),
(5, 'Ponto do Bairro Viória', 'Carmo do Cajuru - MG, 35557-000, B',
-20.195044, -44.749783, 'Ponto', 'Carmo do Cajuru');
CREATE TABLE localizacao (
id_localizacao int PRIMARY KEY NOT NULL AUTO_INCREMENT,
id_onibus int NOT NULL,
id_ponto int NOT NULL,
horario time NOT NULL,
status int NOT NULL,
FOREIGN KEY(id_ponto) REFERENCES markers (id)
);
CREATE TABLE `usuario` (
`id` int PRIMARY KEY NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`telefone` varchar(12) NOT NULL,
`endereco` varchar(255) NOT NULL,
`cidade` varchar(100) NOT NULL,
`data_nasc` date NOT NULL,
`user` varchar(50) NOT NULL,
`senha` varchar(50) NOT NULL,
`pontos` int(11) NOT NULL,
`tipo` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `usuario` (`id`, `nome`, `telefone`, `endereco`, `cidade`, `data_nasc`, `user`, `senha`, `pontos`, `tipo`) VALUES
(1, 'Gabriel Rabelo Camargos', '37 998637969', 'Azaleias 106 - Vitória', 'Carmo do Cajuru', '2000-07-04', 'omitogabriel', '123', 0, 1),
(2, 'Usuário', '37 998637969', 'Rua 2 n 371', 'Carmo do Cajuru', '2000-07-04', 'user', '123', 10, 0),
(3, 'Administrador', '99999999', 'Rua 2 nº 371', 'Carmo do Cajuru', '2000-07-04', 'adm', '123', 0, 0),
(4, 'Eduardo Sousa', '(37) 98854-9', 'Rua Pedro Martins Machado, 411', 'Divinópolis', '2000-01-15', 'dudu', '123', 0, 0);
CREATE TABLE rota (
id_rota int PRIMARY KEY NOT NULL AUTO_INCREMENT,
id_ponto int NOT NULL,
id_linha int NOT NULL,
dia_semana varchar(6),
sentido varchar(255),
FOREIGN KEY(id_ponto) REFERENCES markers (id),
FOREIGN KEY(id_linha) REFERENCES linha (id_linha)
);
CREATE TABLE onibus (
id_onibus int PRIMARY KEY NOT NULL AUTO_INCREMENT,
id_horario int NOT NULL,
id_linha int NOT NULL,
numero varchar(6),
FOREIGN KEY(id_horario) REFERENCES horario (id_horario),
FOREIGN KEY(id_linha) REFERENCES linha (id_linha)
);
ALTER TABLE localizacao ADD FOREIGN KEY(id_onibus) REFERENCES onibus (id_onibus)