外键约束

1. 外键字段在创建的时候就应该与主表的类型完全一致(长度啊等),否则创建外键会报错 2. 外键创建中关键字的references不是reference, 有一个字母s。 3. 主表子表必须都是InnoDB的表! 由于创建了外键,mysql自动的为外键字段字段设置了索引 除非你把子表关联的数据全部删除,你才能删除该条主表的数据 删除:从表记录不存在时,主表才可以删除。删除从表,主表不变 更新:从表记录不存在时,主表才可以更新。更新从表,主表不变当我们想自定义规则的时候,注意用 ON UPDATE/DELETE 规则 这样的语法限定外键就好了。。。 eg: constraint fg_key foreign key(uid) references user(id) on delete cascade on update cascade组合使用 外键约束使用最多的两种情况无外乎:1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败;2)父表更新时子表也更新,父表删除时子表匹配的项也删除。前一种情况,在外键定义中,我们使用ON UPDATE CASCADE ON DELETE RESTRICT;后一种情况,可以使用ON UPDATE CASCADE ON DELETE CASCADE; 。但无论什么约束情况,主表不存在的主键子表也是不能插入相应的外键的,这是所有外键约束的基本原则。自动创建时间 ALTER TABLE `table_name` ADD COLUMN`CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'

    推荐阅读