#1452 MySQL错误:alter table add外键

#1452 MySQL错误:alter table add外键,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我有两个表(cliente,usuario),当我尝试为cliente添加外键时,引用表usuario,这是导致错误1452的原因 Table Cliente id int primary key auto_increment nome varchar(50) not null telefone varchar(14) email varchar(30) id_usuario int

我有两个表(cliente,usuario),当我尝试为cliente添加外键时,引用表usuario,这是导致错误1452的原因

Table Cliente

id          int             primary key     auto_increment
nome        varchar(50)     not null
telefone    varchar(14)
email       varchar(30)
id_usuario  int             not null

-------------------------------------------------------------------------
Table Usuario

id      int             primary key     auto_increment
nome    varchar(50)     not null
email   varchar(30)     not null
我的alter表sql

ALTER TABLE cliente
ADD FOREIGN KEY (id_usuario) REFERENCES usuario(id);
导致此错误的问题在哪里

错误:

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`pedidosystem`.`#sql-25ac_5f`, CONSTRAINT `#sql-25ac_5f_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuario` (`id`))

正如一位评论者所说,您在
cliente
中有一行或多行具有
id\u usario
值,这些值在
usario.id
中的任何位置都不会出现。在创建外键约束之前,必须解决此问题

在创建fk之前,您可以像这样在
cliente
中找到有问题的记录

SELECT cliente.*
  FROM cliente
  LEFT JOIN usario on cliente.usario_id = usario.id
 WHERE usario.id = NULL

一旦你知道哪些记录是坏的,你就可以更新或删除它们。

你在
usuario\u id
列中有一个值,而该值在
usuario(id)
列中不存在。太好了!!你能给我一个答案吗?