外键约束求助

DarrenFu1019 DarrenFu1019 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在《深入浅出MYSQL数据库开发、优化与管理维护》一书中照着抄了一段代码,可是提示出错,怎么找也没找到错误原因,还请各位高手不吝赐教!

书本上抄的代码是:create table city(city_id smallint unsigned not null auto_increment,city varchar(50) not null,country_id smallint unsigned not null,last_update timestamp not null default current_timestamp on update current_timestamp,primary key(city_id),key idx_fk_country_id(country_id),constraint 'fk_city_country' foreign key(country_id) references country(country_id) on delete restrict on update cascade)engine=innodb default charset=utf8;

错误提示: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 ''fk_city_country' foreign key(country_id) references country(country_id) on dele' at line 1

请各位高手帮我看看错误出在哪儿,谢谢了!
...全文

相关推荐

详解MySQL 外键约束

官方文档: https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html 1.外键作用: MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 2.外键的使用条件 两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持) 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和

weixin_38526650

主键、外键、唯一、约束区别

在程序开发中,设计数据库成为了一个重点,会用到相关的主外键,规范数据库中表之间的关系。 本文通过对主键、外键,还有唯一进行了详细的介绍,能够帮助数据库设计者在数据库设计方面发挥一定的作用!

superchenweifang

MySQL删除有外键约束的表数据方法介绍

在MySQL中删除一张表或一条数据的时候,出现 [Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...) 这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 禁用外键约束,我们可以使用: SETFOREIGN_KEY_CHECKS=0; 然后再删除数据 启动外键约束,我们可以使用: SETFOREIGN_KEY_CHECKS=1; 查看当前FOREIGN_KEY_CHECKS的值,可用

weixin_38724363

MySQL外键约束的实例讲解

MySQL的外键约束是用来在两个表之间建立链接的,其中一个表发生变化,另外一个表也发生变化。从这个特点来看,它主要是为了保证表数据的一致性和完整性的。 对于两个通过外键关联的表,相关联字段中主键所在的表是主表,也称之为父表,外键所在的表是从表,也称之为子表,定义外键的时候需要遵守几个规则: 1、父表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则父表与子表是同一个表,这样的表称为自参照表,这种结构称为自参照。 2、必须为父表定义主键。 3、主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。 4、外键中列的数

weixin_38607554

总结三种MySQL外键约束方式

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。   外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。   这里以MySQL为例,总结一下3种外键约束方式的区别和联系。   这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。   首先创建用户组表:   create table t_group(   id int not null,   name varchar(30),   primary key(id)   );   

weixin_38688855
评论 3
收藏 已收藏
分享
返回顶部
DarrenFu1019
MySQL 57,062 成员 56,759 内容