外键约束求助
书本上抄的代码是: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和
主键、外键、唯一、约束区别
在程序开发中,设计数据库成为了一个重点,会用到相关的主外键,规范数据库中表之间的关系。 本文通过对主键、外键,还有唯一进行了详细的介绍,能够帮助数据库设计者在数据库设计方面发挥一定的作用!
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的值,可用
MySQL外键约束的实例讲解
MySQL的外键约束是用来在两个表之间建立链接的,其中一个表发生变化,另外一个表也发生变化。从这个特点来看,它主要是为了保证表数据的一致性和完整性的。 对于两个通过外键关联的表,相关联字段中主键所在的表是主表,也称之为父表,外键所在的表是从表,也称之为子表,定义外键的时候需要遵守几个规则: 1、父表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则父表与子表是同一个表,这样的表称为自参照表,这种结构称为自参照。 2、必须为父表定义主键。 3、主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。 4、外键中列的数
总结三种MySQL外键约束方式
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。 外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。 这里以MySQL为例,总结一下3种外键约束方式的区别和联系。 这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。 首先创建用户组表: create table t_group( id int not null, name varchar(30), primary key(id) );


