MySQL约束

57 阅读1分钟
  • 概念:约束是作用在表中字段的规则,保证数据的正确性、有效性、完整性

  • 分类

MySQL约束分类.png

  • 外键约束

    • 添加外键
    CREATE TABLE 表名(
    ...
    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名称) REFERENCES 主表(主表列名)
    );
    
    ALTER TABLE 表名 [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名称) REFERENCES 主表(主表列名);
    
    • 删除外键
    ALTER TABLE 表名 DROP FOREIGN KEY (外键字段名称);
    
    -- 添加外键约束
    CREATE TABLE DEPT(
    ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL COMMENT '部门ID',
    NAME VARCHAR(10) UNIQUE NOT NULL COMMENT '部门名称'
    ) COMMENT '部门表';
    
    CREATE TABLE EMP(
    ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL COMMENT '员工ID',
    NAME VARCHAR(10) UNIQUE NOT NULL COMMENT '员工姓名',
    AGE INT CHECK (AGE>0 && AGE<120) NOT NULL  COMMENT '年龄',
    CONSTRAINT FK_DEPT_ID FOREIGN KEY (ID) REFERENCES DEPT(ID)
    )  COMMENT '员工表';
    
    ALTER TABLE EMP ADD CONSTRAINT FK_DEPT_ID FOREIGN KEY (ID) REFERENCES DEPT(ID);
    
    -- 删除外键约束
    ALTER TABLE EMP DROP FOREIGN KEY FK_DEPT_ID
    
    • 删除/更新行为

MySQL外键删除更新行为.png

ALTER TABLE EMP ADD CONSTRAINT FK_DEPT_ID FOREIGN KEY (ID) REFERENCES DEPT(ID) ON UPDATE CASCADE ON DELETE CASCADE;