ERROR 1215 (HY000): Can not add foreign key constraint

-1

I am learning a little mysql and decided to make a market system, I have the following tables:

CREATE TABLE IF NOT EXISTS cliente(cliente_cpf BIGINT NOT NULL PRIMARY 
KEY,cliente_nome VARCHAR(100) NOT NULL,cliente_sexo BIT NOT 
NULL,cliente_nascimento DATE NOT NULL,cliente_email 
VARCHAR(50),cliente_telefone BIGINT,cliente_celular BIGINT);

CREATE TABLE IF NOT EXISTS produto(produto_id INT AUTO_INCREMENT PRIMARY 
KEY,produto_nome VARCHAR(100) NOT NULL,produto_preco FLOAT(5,2) NOT NULL);

CREATE TABLE IF NOT EXISTS item_pedido(item_pedido_id INT NOT 
NULL,item_pedido_produto_id INT NOT NULL,item_pedido_produto_quantidade 
TINYINT NOT NULL,FOREIGN KEY(item_pedido_produto_id) references 
produto(produto_id));

CREATE TABLE IF NOT EXISTS pedido(pedido_id INT NOT NULL AUTO_INCREMENT 
PRIMARY KEY,pedido_cliente_cpf BIGINT NOT NULL,pedido_item_pedido_id INT NOT 
NULL DEFAULT 0,pedido_data_compra TIMESTAMP DEFAULT 
CURRENT_TIMESTAMP(),pedido_valor_total FLOAT(6,2),FOREIGN KEY 
(pedido_item_pedido_id) REFERENCES item_pedido(item_pedido_id),FOREIGN KEY 
(pedido_cliente_cpf) REFERENCES cliente(cliente_cpf));

I have a problem in the request table with regard to add to set request_item_order_id in the request table, everything else works fine and if I do not add this foreign key the requested table also works, the error is ERROR 1215 (HY000): Can not add foreign key constraint, I researched and I did not see why giving this error, can anyone help me?

    
asked by anonymous 11.07.2018 / 17:47

1 answer

2

Reason for error:

You need to "index" the item_pedido_id of the item_pedido table.

Why?

  

The foreign key requires reference to a primary and / or single key.

Resolution:

Place item_pedido_id of table item_pedido as UNIQUE and / or PRIMARY KEY .

Example in your script:

CREATE TABLE IF NOT EXISTS item_pedido(
      item_pedido_id INT NOT NULL UNIQUE PRIMARY KEY,
      item_pedido_produto_id INT NOT NULL,
      item_pedido_produto_quantidade TINYINT NOT NULL,
      FOREIGN KEY(item_pedido_produto_id) references produto(produto_id)
);
    
11.07.2018 / 18:06