Problem creating foreign key in mysql

0

Well I have to relate 3 tables and I am trying to create the foreign key I can only create that in php I have a INSERT for one of the tables that does not insert and accuse the following what I am doing wrong in Foreign key ? How can I solve this problem?

Error

foreign key constraint fails ('sabeonde_sabeonde'.'notificacoes_visualizacao',
    CONSTRAINT 'fk_notificacao_visualizacao_notificacao' 
    FOREIGN KEY ('id_notificacao') REFERENCES 'notificacoes' ('id') ON DELETE
    NO ACTION ON UPD)' in  /home/sabeonde/public_html/ajax/mostra_notificacoes.php:41
Stack trace:
#0 /home/sabeonde/public_html/ajax/mostra_notificacoes.php(41): PDOStatement->execute()
#1 {main}

Notifications

CREATE TABLE IF NOT EXISTS 'notificacoes' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'user_id' int(11) NOT NULL,
'user_destino_notificacao' int(11) NOT NULL,
'notificacao' varchar(500) COLLATE utf8_unicode_ci NOT NULL,
'tipo' varchar(500) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

Display notifications

  CREATE TABLE IF NOT EXISTS 'notificacoes_visualizacao' (
  'id_notificacao' int(10) NOT NULL,
  'id_usuario_que_visualizou' int(10) NOT NULL,
  PRIMARY KEY ('id_notificacao','id_usuario_que_visualizou'),
  KEY 'fk_notificacao_visualizacao_usuario_idx' ('id_usuario_que_visualizou')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Constraints for dumped tables
--

--
-- Limitadores para a tabela 'notificacoes_visualizacao'
--
ALTER TABLE 'notificacoes_visualizacao'
  ADD CONSTRAINT 'fk_notificacao_visualizacao_notificacao' FOREIGN KEY ('id_notificacao') REFERENCES 'notificacoes' ('id') ON DELETE NO ACTION ON UPDATE CASCADE,
  ADD CONSTRAINT 'fk_notificacao_visualizacao_usuario' FOREIGN KEY   ('id_usuario_que_visualizou') REFERENCES 'users_social' ('id') ON DELETE NO ACTION ON UPDATE CASCADE;

Insertion php code

    $sql = $conexao->prepare("INSERT INTO notificacoes_visualizacao (id_notificacao, id_usuario_que_visualizou) VALUES (:id_notificacao, :id_usuario_que_visualizou)");
    $sql->bindParam(':id_notificacao', $row_notificacoes['id'], PDO::PARAM_INT);
    $sql->bindParam(':id_usuario_que_visualizou', $user_actual, PDO::PARAM_INT); 
    $sql->execute();
    
asked by anonymous 15.03.2015 / 02:01

0 answers