I am trying to make a Foreign Key to some tables that I have created but MySQL does not allow me, these are the tables:
CREATE TABLE publicador(id_publicador INT NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
fecha_publicador TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL,
nombre_publicador VARCHAR(20) NOT NULL,
apellido_publicador VARCHAR(20),
ubicacion_carrito VARCHAR(50),
horario_publicador VARCHAR(25) NOT NULL,
jornada_publicador TIME);
CREATE TABLE carrito(id_carrito INT NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
fecha_carrito TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL,
ubicacion_carrito VARCHAR(50) NOT NULL);
CREATE TABLE horario(id_horario INT NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
fecha_horario TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL,
turno_horario VARCHAR(25) NOT NULL);
CREATE TABLE jornada(id_horario INT NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
fecha_jornada TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL,
dia_jornada TIME NOT NULL);
CREATE TABLE jornada(id_jornada INT NOT NULL PRIMARY KEY AUTO_INCREMENT UNIQUE,
fecha_jornada TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL,
dia_jornada TIME NOT NULL);
And the following are the foreign key:
ALTER TABLE publicador
ADD CONSTRAINT fk_publicador_horario
FOREIGN KEY (horario_publicador)
REFERENCES horario (turno_horario)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE publicador
ADD CONSTRAINT fk_publicador_jornada
FOREIGN KEY (jornada_publicador)
REFERENCES jornada (dia_jornada)
ON DELETE CASCADE ON UPDATE CASCADE;
Tables are created correctly, but at the time of applying foreign keys it gives the error that foreign keys can not be applied.