• mysql数据库的常用操作-主键


    • 关于主键                                                                                

    • 外键一个特殊的索引,用于关键两个表,只能是指定的内容
    • mysql> create table class(
          -> id  int not null primary key,
          -> name char(16));
      Query OK, 0 rows affected (0.02 sec)
       
       
      CREATE TABLE `student2` (
        `id` int(11) NOT NULL,
        `name` char(16) NOT NULL,
        `class_id` int(11) NOT NULL,
        PRIMARY KEY (`id`),
        KEY `fk_class_key` (`class_id`),
        CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`)
      ) 
       1 此时如果class 表中不存在id 1,student表也插入不了,这就叫外键约束
       2 mysql> insert into student2(id,name,class_id) values(1,'alex', 1);
       3 ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`testdb`.`student2`, CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`))
       4  
       5  
       6  
       7 mysql> insert into class(id,name) values(1,"linux");
       8 Query OK, 1 row affected (0.01 sec)
       9  
      10 mysql> insert into student2(id,name,class_id) values(1,'alex', 1);
      11 Query OK, 1 row affected (0.00 sec)
      12  
      13  
      14 #如果有student表中跟这个class表有关联的数据,你是不能删除class表中与其关联的纪录的
      15 mysql> delete from class where id =1;
      16 ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`testdb`.`student2`, CONSTRAINT `fk_class_key` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`))
  • 相关阅读:
    hdu 5976 Detachment
    poj 2096 Collecting Bugs
    hdu 4544 湫湫系列故事——消灭兔子
    Educational Codeforces Round 8 B. New Skateboard
    python 迭代器与生成器 区别
    【机器学习】EM算法详细推导和讲解
    【机器学习】极大似然估计详解
    标准sql工单模板
    【机器学习】LDA 浅谈
    Jupyter notebook入门教程
  • 原文地址:https://www.cnblogs.com/qybk/p/9228837.html
Copyright © 2020-2023  润新知