MySQL错误#1452-尝试添加外键

MySQL错误#1452-尝试添加外键,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我试图为accountID的accounts表创建一个外键,但phpMyAdmin给了我以下错误 #1452 - Cannot add or update a child row: a foreign key constraint fails (`db123`.`#sql-910_11a1`, CONSTRAINT `#sql-910_11a1_ibfk_1` FOREIGN KEY (`adminID`) REFERENCES `accounts` (`accountID`) ON DELET

我试图为accountID的accounts表创建一个外键,但phpMyAdmin给了我以下错误

#1452 - Cannot add or update a child row: a foreign key constraint fails (`db123`.`#sql-910_11a1`, CONSTRAINT `#sql-910_11a1_ibfk_1` FOREIGN KEY (`adminID`) REFERENCES `accounts` (`accountID`) ON DELETE CASCADE ON UPDATE CASCADE) 
错误是什么意思?如何添加外键

代码:

CREATE TABLE administrators(
  Username VARCHAR(7) NOT NULL PRIMARY KEY
, adminID INTEGER(1)
, accountID INTEGER(2)
, Hashed_Password VARCHAR(64)
, Salt VARCHAR(32)
, first_name VARCHAR(8)
, last_name VARCHAR(8)
, Email VARCHAR(25)
, Join_Date VARCHAR(16)
);
INSERT INTO administrators(Username,adminID,accountID,Hashed_Password,Salt,first_name,last_name,Email,Join_Date) VALUES ('admin',1,30,'9d26a3c61c0e2ce5c980ad8c7fff13c08cf898b6f3786930c73b68e3b88ad779','002640cb549ba08ee90cd79aee89cce7','Your','name','your email','2014/01/13 14:00');
INSERT INTO administrators(Username,adminID,accountID,Hashed_Password,Salt,first_name,last_name,Email,Join_Date) VALUES ('adminkt',2,31,'19612ae3ed04b7c224ba12db07be5ce0915eed3de351ccbf60508f948b476e5a','15cec5205c9e34355287acbb4d096a08','Kristi','Turman','kristi@gmail.com','2014/01/01 09:00');
INSERT INTO administrators(Username,adminID,accountID,Hashed_Password,Salt,first_name,last_name,Email,Join_Date) VALUES ('adminst',3,32,'0fec1e61a67e7a0fd3623e0d9d656fc765462557c2a5f5933ee37b63d9864d80','a1dca222c170e3d2b5dd2557d5a57090','Scott','Turman','turman@telstra.com.au','2014/01/20 14:30');
INSERT INTO administrators(Username,adminID,accountID,Hashed_Password,Salt,first_name,last_name,Email,Join_Date) VALUES ('adminrw',4,33,'8a35fd6de1e692dfa8277c405f93bba34926176285c85a13634e54e051b576f3','09d1fe391935b75f798053f866ee5052','Richard','Weathers','richo@gmail.com','2014/01/20 16:00');
INSERT INTO administrators(Username,adminID,accountID,Hashed_Password,Salt,first_name,last_name,Email,Join_Date) VALUES ('adminnc',5,34,'d54dc8e24b12ba4805777d6b6eac977094b73962a15e04f227ec40eb6ec56432','4d069acd30e4b0c6eb5e5f36c01d1482','Nicholas','Cutter','nicholas.cutter@gmail.com','2014/01/22 13:00');

您的
administrators
表中的记录很可能与
account
表中的记录不匹配。如果要添加这样的外键:
administrators.adminID->accounts.accountID
,则必须确保
administrators
中的所有记录都有一个
adminID
对应于
accounts
表的
accountID
字段

如果
帐户
表中没有匹配的记录,则您的
警报表
将失败

例如,您必须在
accounts
表中至少有5条记录,其
accountID
从1到5。


可能您在
accountID
字段的
accounts
表的
adminID
上定义了一个外键,现在您正在尝试向管理员表添加一个具有account表中不存在的adminID的元组

打开phpmyadmin,查看管理员表(管理员->结构->索引)上的索引部分,删除创建的任何不可用的索引

[编辑]


帐户表不包含您试图在上面插入的adminID

如果您将错误消息“无法添加或更新子行:外键约束失败”放入google,您可以阅读数百个相关问题和文章。您可以发布代码吗?删除外键约束,首先删除子行。可能您定义了错误的外键?发布上面添加的代码/?@Robert code您的
帐户
表中有哪些记录?您正试图在此处的
adminID
上生成外键。也许您想对
administrators
表的
accountID
字段进行外键输入?ID与您的
帐户
表不匹配我建议清空这两个表,对其进行更改,然后重新插入记录,确保两者之间的ID匹配我真的认为您想在
administrators.accountID
上创建外键,而不是
administrators.adminID
查看您的
警报表
您建议我更改什么