精华内容
下载资源
问答
  • 一、SQL语句创建数据表并设置主外键关系 create table demo.ChineseCharInfo ( ID int not null auto_increment, Hanzi varchar(10) not null, primary key (ID) ) engine=innodb auto_increment=
  • 命令:altertable需加外键addconstraint外键名foreignkey(需加外键表的字段名)referencnes关联表名(关联字段名); 注意:外键名不能重复

    命令:alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名);

    注意:外键名不能重复

    展开全文
  • mysql创建表添加外键约束产生Cannot add foreign key constraint 例如创建了user(user_id pk)和role(role_id pk),当创建user_role(user_id fk,role_id fk)关联的时候就出现问题。 1.所添加外键必须是另一...

    mysql创建表时添加外键约束产生Cannot add foreign key constraint

    例如创建了user(user_id pk)表和role(role_id pk)表,当创建user_role(user_id fk,role_id fk)关联表的时候就出现问题。

    1.所添加外键必须是另一个表的主键。

    2.所关联的外键的类型必须和另一个表的主键相同.user中的user_id的类型必须和user_role中的user_id的类型相同;role中的role_id的类型必须和user_role中的role_id的类型相同

    3.使用navicat连接mysql时,没有新建数据库,使用的是默认数据库,其原因主要是
    数据库引擎不同!
    查询user表数据库引擎语句show create table user;
    查询结果如下所示:
    CREATE TABLE user (
    user_id int(11) NOT NULL,
    username varchar(30) NOT NULL,
    PRIMARY KEY (user_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    查询role表数据库引擎语句show create table role;
    CREATE TABLE role (
    role_id int(11) NOT NULL,
    rolename varchar(30) NOT NULL,
    PRIMARY KEY (role_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    展开全文
  • 创建两个 CREATE TABLE `student1` ( `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` varchar(20) NOT NULL DEFAULT '123456' ...

    创建两个表

    CREATE TABLE `student1` (
      `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
      `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
      `pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
      `sex` varchar(2) NOT NULL DEFAULT '女' COMMENT '性别',
      `birthday` datetime DEFAULT NULL COMMENT '出生日期',
      `gradeid` int(10) NOT NULL COMMENT '学生的年级',
      `address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
      `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
      `hobby` int(5) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) 
    
    CREATE TABLE `grade`(
    	`gradeid` INT(10) NOT NULL auto_increment COMMENT '年级id',
    	`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',
    	PRIMARY key (`gradeid`)
    )
    

    添加外键约束

    alter table 表 add constraint 约束名 foreign key(作为外键的列) reference 哪个表(哪个字段)

    ALTER TABLE `student1`
    ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`)
    REFERENCES `grade`(`gradeid`)
    

    删除有外键关系的表时,必须要先删除引用别人的表,再删除被引用的表

    这里的案例要先删除表student1,才能删除表grade

    以上操作是物理外键,数据库级别的外键,我们不建议使用!(避免数据库过多造成困扰)

    展开全文
  • 关于Mysql新建时设置外键或者从已有添加外键 *外键:在从中与主主键对应的那一列,如:下面例子中的联系人中的(lkm_cust_id) 主: 一方,用来约束别人的: 多方,被别人约束的 1.新建时 ...

    关于Mysql新建表时设置外键或者从已有表中添加外键

    *外键:在从表中与主表主键对应的那一列,如:下面例子中的联系人表中的(lkm_cust_id)

    • 主表: 一方,用来约束别人的表
    • 从表: 多方,被别人约束的表

    1.新建表时

    [CONSTRAINT] [外键在这里插入代码片约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名);
    

    例如: 此处在联系人表中添加外键(cust_id)

    /*创建客户表*/
    CREATE TABLE cst_customer (
      cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
    
    /*创建联系人表*/
    CREATE TABLE cst_linkman (
      lkm_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)',
      lkm_cust_id bigint(32) NOT NULL COMMENT '客户id(外键)',
      PRIMARY KEY (`lkm_id`),
      CONSTRAINT `FK_cst_linkman_lkm_cust_id` FOREIGN KEY (`lkm_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
    1. 在已有表中添加外键
      语法:
    ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主
    键字段名);
    

    3.补充----设置外键时on条件说明

    • . cascade方式
      在父表上update/delete记录时,同步update/delete掉子表的匹配记录

      . set null方式
      在父表上update/delete记录时,将子表上匹配记录的列设为null
      要注意子表的外键列不能为not null

      . No action方式
      如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作

      . Restrict方式
      同no action, 都是立即检查外键约束

      . Set default方式
      父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

    展开全文
  • 1. 创建表的同时添加外键 create table score( score int(3), st_id int(16), cs_id int(16), primary key(st_id,cs_id), FOREIGN KEY (st_id) REFERENCES student(id), FOREIGN KEY (cs_id) REFERENCES classes(id)...
  • mysql表创建好后添加外键

    万次阅读 2017-10-12 17:36:10
    命令:alter table 需加外键 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名); 注意:外键名不能重复 ALTER TABLE STORE_FRONTINFO ADD CONSTRAINT FK_STORE_FR_...
  • 主要介绍了MySQL无法创建外键的原因及解决方法,然后在文中给大家及时了MySQL无法创建外键、查询外键的属性知识,感兴趣的朋友一起看看吧
  • Mysql表添加外键约束

    千次阅读 2018-08-15 18:25:26
    ·添加外键约束:altertable从addconstraint外键(形如:FK_从_主)foreignkey(从外键字段)references主(主键字段); 如果mysql报错:Error Code: 1215. Cannot add foreign key constraint (foreign keys) ...
  • 下面是已经创建好的两个数据!(还未加外键约束) 1. mysql> show columns from message;//信息 +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default |...
  • mysql 创建表添加外键约束注意

    千次阅读 2017-10-11 20:40:18
    (1)外键对应的字段数据类型不一致 (2)设置外键时“删除时”设置为“SET NULL” (3)两张的存储引擎不一致
  • 创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子列] REFERENCES news_type[主表名] (id)[主列] ; 3.使用组合主键 如果一列不能唯一区分一...
  • 中已有字段设置 外键 似乎不能设置为主键即使定义时没有定义主键也会报错 如 Multiple primary key defined 1。添加新字段 alter table 表名 add 字段名 字段描述; alter table student add phone varchar(20);...
  • 4.在进行外键关联的时候,如果关联的的主键是由多列组合而成的,那么在进行外键约束的时候由括号中的两部分一起 另外,需要注意外键名不能重复,故在进行外键命名时,比如t2和t1进行外键关联,则命名为fk_t2_t1,...
  • MySQL中给已存在的表添加外键

    千次阅读 2020-07-16 21:51:15
    //给表添加属性 ALTER TABLE goods ADD COLUMN cid INT; ALTER TABLE goods ADD CONSTRAINT fk_goods_category FOREIGN KEY(cid) REFERENCES category(cid); //查看是否添加成功 SHOW CREATE TABLE goods;
  • MySQL 表格外键添加和删除

    千次阅读 2019-05-06 17:18:59
    1.创建表格时添加外键: 例子: create table students( id int primary key auto_increment, name varchar(11), phone varchar(11), classes_id int not null, constraint foreign key(classes_id) references...
  • mysql基本操作(建表,添加外键等)

    千次阅读 2019-01-27 20:08:58
    考研结束放假在家等成绩是在着急,突然想起毕业设计,在...结果创建表的简单操作完成,但是在创建表的时候回添加注释或者设置约束又或者设置储存引擎等等,这些操作可以参考mysql的帮助文档,后续我也会用几篇博客...
  • 创建需求: 如何让分类category和商品product之间产生关系? 如果有关系,在数据库中如何表示这种关系? 我们首先建立数据、插入数据: create table category( cid int primary key auto_increment, cname ...
  • MySQL表添加外键约束

    万次阅读 2017-07-12 23:43:55
    表添加外键约束的语法 Alter table 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外表表名(主键字段名);为student添加外键约束执行成功后,使用DESC来查看学生和班级 可以看出,grade...
  • 1、安装mysql有InnoDB的...5、MySQL支持外键约束,提供与其它DB相同的功能,但类型必须为 InnoDB,非InnoDB 存储引擎会导致报错。 6、建外键的的那个列没有index。 您可能感兴趣的文章:mysql外键(Foreign Key)
  • mysql数据库如何添加一个外键

    千次阅读 2019-07-21 15:54:01
    1:创建一个父,主键作为子外键: 1 create table province( 2 pId int primary key auto_increment, 3 pName varchar(20) 4 ); 2:创建外键是父的主键: 1 create table user( 2 userId int primary ...
  • MYSQL 建表时加主外键

    千次阅读 2019-02-27 14:54:00
     -- 方式一:不指定外键名称,数据库自动生成  foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade     -- 方式二:指定外键名称为(FK_Name)  -- constraint FK_...
  • 查看是否添加外键时,显示的是有我们添加的外键 KEY `FK_ID` (`CNO`); 放张对比图,下面的是正确的情况,可以发现之前的外键并没有与外表联系起来,这样的外键是不会起到作用的。 首先得知道: 只有存储...
  • 表创建主键 外键 创建表时 以创建user为例 : create table user( id int PRIMARY KEY auto_increment, name VARCHAR(20), age int, birthday date, dept_id int, constraint emp_deptid_fk foreign key(dept_id...
  • 数据库设计 E-R模型 E-R模型的基本元素是:实体、联系和属性 ...被指向的实体,称之为主实体(主),也叫父实体(父) 负责指向的实体,称之为从实体(从),也叫子实体(子) 对关系字段进
  • mysql添加外键语句

    千次阅读 2020-03-04 09:46:09
    1.添加外键约束:altertable从addconstraint外键(形如:FK_从_主)foreignkey(从外键字段)references主(主键字段); 如:alter table t_book add constraint `fk` foreign key (`bookTypeId`) references...
  • 创建表1.如果是5.6以下timestamp(3)改为timestamp不然报错create table ACT_RE_MODEL ( ID_ varchar(64) not null, REV_ integer, NAME_ varchar(255), KEY_ varchar(255), CATEGORY_ varchar(255), CREATE_...
  • MySQL数据中怎样添加外键的两种方式: 第一种方式(创建表之后添加) CREATE TABLE my_classes( class_id INT PRIMARY KEY AUTO_INCREMENT, class_name VARCHAR(20) NOT NULL , class_school_id INT ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,473
精华内容 21,789
关键字:

mysql创建表并添加外键

mysql 订阅