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();