Cómo agregar clave externa (MySQL)

Soy extremadamente nuevo en SQL e intento realizar una ALTER TABLE simple para crear una nueva columna y usarla como clave externa para hacer referencia a otra tabla simple en mi base de datos. He alterado ambas tablas para que sean InnoDB.

Sin embargo, al ejecutar el código ALTER TABLE, aparece el siguiente error:

Error   1452    Cannot add or update a child row: 
a foreign key constraint fails (`toys`.<result 2 when 
explaining filename '#sql-6d4_6'>, CONSTRAINT 
`#sql-6d4_6_ibfk_1` FOREIGN KEY (`toy_id`) REFERENCES `toys` (`toy_id`))    

A continuación se presentan los DESC de ambas tablas:

Tabla 1:

FIELD       TYPE     NULL   KEY     EXTRA
toy_id      int(11)  NO     PRI     auto_increment
toy varchar(50) YES         

Tabla 2:

FIELD       TYPE        NULL   KEY     EXTRA
boy_id      int(11)     NO     PRI      auto_increment
boy         varchar(50) YES 

Y esta es la consulta ALTER que estaba tratando de realizar:

    ALTER TABLE boys
    ADD COLUMN toy_id INT NOT NULL,
    ADD CONSTRAINT toys_toy_id_fk
    FOREIGN KEY(toy_id)
    REFERENCES toys(toy_id);

He mirado por todos lados tratando de resolverlo, pero sin suerte. Gracias de antemano, y por favor sean amables con este novato :)

EDITAR:

Aquí están las tablas de SHOW CREATE para ambas tablas:

TABLA 1:

    CREATE TABLE `toys` (
      `toy_id` int(11) NOT NULL AUTO_INCREMENT,
      `toy` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`toy_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

TABLA 2:

    CREATE TABLE `boys` (
      `boy_id` int(11) NOT NULL AUTO_INCREMENT,
      `boy` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`boy_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8

Respuestas a la pregunta(1)

Su respuesta a la pregunta