错误:

Error Code: 1452

Cannot add or update a child row: a foreign key constraint fails

错误产生情景:我向一张带外键的表中插入一条新的数据

表情况:

表tb_user:

CREATE TABLE `tb_user` (
`uname` VARCHAR(30) NOT NULL COMMENT '用户名',
`upwd` VARCHAR(30) NOT NULL DEFAULT '000000' COMMENT '密码',
`email` VARCHAR(30) NOT NULL COMMENT '邮箱',
`phone` CHAR(11) NOT NULL COMMENT '电话(手机号)',
`role` INT(1) NOT NULL DEFAULT '0' COMMENT '角色(1表示管理员)',
PRIMARY KEY (`phone`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='用户信息表'

表tb_address:(关联表 tb_user)

CREATE TABLE `tb_address` (
`rid` INT(11) NOT NULL AUTO_INCREMENT COMMENT '记录编号',
`user_id` CHAR(11) NOT NULL COMMENT '用户编号(用户手机号)',
`address` VARCHAR(50) NOT NULL COMMENT '地址',
`added` DATETIME NOT NULL COMMENT '添加日期/时间',
`receiver` VARCHAR(30) NOT NULL COMMENT '收件人(姓名)',
`receiver_phone` CHAR(11) NOT NULL COMMENT '收件人电话',
PRIMARY KEY (`rid`),
KEY `fk_address_user` (`user_id`),
CONSTRAINT `fk_address_user` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`phone`)
) ENGINE=INNODB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='用户地址表'

错误产生:我执行以下语句时报错。

INSERT INTO tb_address (user_id,address,added,receiver,receiver_phone) VALUES('10086','彩云之南',CURRENT_TIMESTAMP,'范闲','4008208820')

分析:向tb_address 中插入了一条新数据,此数据中外键所在字段在表tb_user中并没有。注意:user_id与表tb_user的字段phone关联。

解决:先向 tb_user 表中插入数据此数据的 phone 字段与之后要向 tb_address 表中插入的数据的 user_id 字段一致

最新文章

  1. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  2. spring 缓存(spring自带Cache)(入门)源码解读
  3. jquery判断当前设备是手机还是电脑并跳转
  4. rsyncd.conf 文件
  5. myeclipse 10创建maven项目
  6. (DP6.1.2.1)UVA 147 Dollars(子集和问题)
  7. 修改weblogic11g的JDK版本
  8. Java基础知识强化05:不借助第三个变量实现两个变量互换
  9. C#生成高清缩略图
  10. libeXosip2(3) -- SIP messages and call control API
  11. struts2笔记04-XxxAware接口
  12. 桥接模式 桥梁模式 bridge 结构型 设计模式(十二)
  13. hive -e执行出现「cannot recognize input near '<EOF>' in select clause」问题
  14. 将本地html文件拖到IE8浏览器无法打开,直接弹出一个下载的对话框
  15. 将Elasticsearch的快照备份到HDFS
  16. Python openpyxl、pandas操作Excel方法简介与具体实例
  17. 如何运用kali-xplico网络取证分析?点开看看吧
  18. 多线程的实现及常用方法_DAY23
  19. java高级---->Thread之Phaser的使用
  20. freemarker 宏嵌套nested 的使用

热门文章

  1. 404 GET /nbextensions/jupyter-js-widgets/extension.js
  2. Oracle数据库之——分组查询,子查询及添加,更新,删除
  3. Struts 2 学习(一)
  4. python模块----pymysql模块 (连接MySQL数据库)
  5. Redis挖矿原理及防范
  6. pandas中的遍历方式速度对比
  7. linux(5)查看历史命令执行记录history
  8. [IOI1998] Polygon (区间dp,和石子合并很相似)
  9. Codeforces Round #660 (Div. 2) Captain Flint and Treasure 拓扑排序(按照出度、入读两边拓扑排序)
  10. hdu 6814 Tetrahedron 规律+排列组合逆元