MySQL设置主键外键时错误:ERROR 1064 (42000)
2017-03-26 11:32
501 查看
环境:
MySQL 5.7问题:
之前为这个终生图书馆小项目设计了几张表User,HaveRead,SignIn,Book,BookLabel,BookPlan,结果昨晚发现如果User表用户变化(比如删除用户等等),SignIn和HaveRead不能及时变化还得自己写代码做一个验证逻辑有点麻烦。何干事跟我提到说可以设置主键外键来解决这个问题;在重新创建这些表以及构建外键关系的时候,MySQL报了这样一个错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ‘TYPE=
INNODB’ at line 8
解决:
将TYPE=INNODB改为ENGINE=INNODB就行了外键:
还可以在foreign key那一句后面加上:
ON DELETE CASCADE ,则
1. 向parent插入数据后,向child插入数据,插入时,child中的parent_id的值只能是parent中有的数据,否则插入不成功;
2. 删除parent记录时,child中的相应记录也会被删除;–>因为: on delete cascade
3. 更新parent记录时,不给更新;–>因为没定义,默认采用restrict.
on update cascade , 则更新parent记录时,child中的相应记录也会被更新
这里具体可以参照这篇文章: MySQL外键设置详解
相关文章推荐
- [转]MySQL保留关键字(SQL Error: 1064, SQLState: 42000错误)
- MySql导入sql脚本及错误ERROR 1064 (42000)
- mysql 建立外键错误(mysql error number 1005 errno: 150)
- [转]mysql如何设置主键和外键,实现级联更新、级联删除
- Mysql修改密码,远程登录,ERROR 1044 (42000)错误解决办法
- 后台报SQL Error: 1064, SQLState: 42000错误
- MYSQL 脚本导入 错误--ERROR 1064
- MySQL中ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes错误的处理
- 解决MySQL创建外键时ERROR 1005, errorno:150的错误
- mysql如何设置主键和外键,实现级联更新、级联删除
- mysql grant命令错误:ERROR 1044 (42000): Access denied for 'root' With All Privileges
- mysql 设置外键关联错误 150
- 关于mysql 新建表出现 error 1064(42000) 的一些疑问?
- 新设置mysql主从机,MySQL主从失败 错误Got fatal error 1236
- mysql创建存储过程时ERROR 1064 (42000)的解决办法
- mysql,dos下执行SQL语句创建存储过程出错ERROR 1064 (42000):
- MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'yht'
- [MySQL 错误]ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not
- SQL Error: 1064, SQLState: 42000 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
- MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx: Unknown command '\Z'.