精华内容
下载资源
问答
  • 删除不是特别常用,特别是对于存在外键关联的,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库...
  • (还未加外键约束) 1. mysql> show columns from message;//信息 +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------...
  • 主要介绍了MySQL无法创建外键的原因及解决方法,然后在文中给大家及时了MySQL无法创建外键、查询外键的属性知识,感兴趣的朋友一起看看吧
  • mysql数据建立主外键需要注意以下几点: 需要建立主外键关系的两个的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列...
  • MySQL外键约束是用来在两个之间建立链接的,其中一个发生变化,另外一个也发生变化。从这个特点来看,它主要是为了保证数据的一致性和完整性的。 对于两个通过外键关联的,相关联字段中主键所在的是主...
  • 定义一个教师、一个学生;在学生中引用教师ID create table teachers(teacherID int not null auto_increment primary key,teacherName varchar(8)); create table students(studentID int not null auto_...
  • MySQL8.0-外键约束

    2021-08-13 13:18:05
    1、创建订单(ordes) 订单(orders) orders(id,customerId,saleId,orderDate,notes) orders数据 订单ID 客户ID 销售员ID 订单日期 ...为customerId字段设置外键约束,参照客户(customer)

    1、创建订单表(ordes)

    订单表(orders)
    orders(id,customerId,saleId,orderDate,notes)
    orders表数据

    订单ID客户ID销售员ID订单日期备注
    10001132015-05-15
    10002222015-05-16
    10003322015-05-16
    10004242015-05-19

    说明:设置id为主键;为customerId字段设置外键约束,参照客户表(customer)的id字段(不执行任何操作);为saleId字段设置外键约束。

    -- 订单表(orders)
    CREATE TABLE orders(
    	id INT UNSIGNED NOT NULL COMMENT '订单ID',
    	customerId INT UNSIGNED NOT NULL COMMENT'客户ID',
    	saleId INT UNSIGNED NOT NULL COMMENT'单价',
    	orderDate date COMMENT'订单日期',
    	notes VARCHAR(50) COMMENT'备注',
    	PRIMARY KEY(id),
    	FOREIGN KEY(customerId) REFERENCES customer(id),
    	FOREIGN KEY(saleId) REFERENCES seller(id)
    )ENGINE=INNODB DEFAULT charset=utf8mb4;
    INSERT orders(id,customerId,saleId,orderDate,notes)
    VALUE('10001','1','3','2015-05-15',''),
    ('10002','2','2','2015-05-16',''),
    ('10003','3','2','2015-05-16',''),
    ('10004','2','4','2015-05-19','');
    

    2、创建订单明细表(orderDetail)

    orderDetail(id,orderId,productId,quantity,totalMoney)
    orderDetail表数据

    ID订单ID商品ID订货数量订货总额
    11000132276492.2
    2100016335670
    31000110248520.8
    41000211723096
    51000232206292
    61000311152070
    71000372803864
    81000421136949.5
    91000473394678.2
    101000410325682.5

    说明:设置id为主键;为productId字段设置外键约束。

    -- 订单明细表 (orderdetail)
    CREATE TABLE orderDetail(
    	id INT UNSIGNED NOT NULL auto_increment COMMENT 'ID',
    	orderId CHAR(10) COMMENT'订单ID',
    	productId INT UNSIGNED COMMENT'商品ID',
    	quantity CHAR(5) COMMENT'订货数量',
    	totalMoney VARCHAR(9) COMMENT'单价',
    	PRIMARY KEY(id),
    	FOREIGN KEY(productId) REFERENCES product(id)
    )ENGINE=INNODB DEFAULT charset=utf8mb4;
    INSERT orderDetail(orderId,productId,quantity,totalMoney)
    VALUE ('10001','3','227','6492.2'),
    ('10001','6','335','670'),
    ('10001','10','248','520.8'),
    ('10002','1','172','3096'),
    ('10002','3','220','6292'),
    ('10003','1','115','2070'),
    ('10003','7','280','3864'),
    ('10004','2','113','6949.5'),
    ('10004','7','339','4678.2'),
    ('10004','10','325','682.5');
    
    展开全文
  • 外键是的一个特殊字段,外键约束是为了保证多个(通常为两个)之间的参照完整性,即构建两个的字段之间的参照关系。 设置外键约束的两个之间具有父子关系,即子中某个字段的取值范围由父决定。例如,...

    列的完整性约束_外键约束

    设置表字段的外键约束(FOREIGN KEY,FK)

    外键是表的一个特殊字段,外键约束是为了保证多个表(通常为两个表)之间的参照完整性,即构建两个表的字段之间的参照关系。

    设置外键约束的两个表之间具有父子关系,即子表中某个字段的取值范围由父表决定。例如,表示一个班级和学生关系,即每个班级有多个学生。首先应该有两个表:班级表和学生表,然后学生表有一个表示班级编号的字段no,其依赖于班级表的主键,这样字段no就是学生表的外键,通过该字段班级表和学生表建立了关系。

    一个班级表:
    在这里插入图片描述
    每一行对应着一个班级,而一个班级对应着多个学生,所以班级表和学生表的关系就是“一对多”:
    在这里插入图片描述
    在具体设置FK约束时,设置FK约束的字段必须依赖于数据库中已经存在的父表的主键,同时外键可以为空(NULL)。

    具体操作

    在这里插入图片描述

    create table student(id int PRIMARY KEY AUTO_INCREMENT, name varchar(64) NOT NULL, class_id int, sex enum('M', 'F'), FOREIGN KEY(class_id) REFERENCES class(id));
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    结语:

    时间: 2020-07-07

    展开全文
  • 原因:由于主好应用外键关联字段不一致。 报错情况2: Error 1005 Can't create "数据库名.#sql-4124_f"(errno:121) 原因:外键字段关键字重复引用(注意:一个外键只可以关联一张“类比一个USB接口只...

    报错情况1:

    Error 1005:Can't create table(errno:150)

    原因:由于主表好应用表的外键关联字段不一致。

    报错情况2:

    Error 1005 Can't create "数据库名.#sql-4124_f"(errno:121)

    原因:外键字段关键字重复引用(注意:一个外键只可以关联一张表“类比一个USB接口只可以连接一台手机”)

    报错情况3:

    sql 1452 Cannot add or update a child row:a foreign key constraint fails

    原因:设置的外键和另外一张表的主键对应的值不匹配。

    希望日后工作牢记奋斗

    展开全文
  •  这里以MySQL为例,总结一下3种外键约束方式的区别和联系。  这里以用户和用户组为例,这是一个典型的多对一关系,多个用户对应于一个用户组。  首先创建用户组:  create table t_group(  id int ...
  • 创建两个 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数据库——外键约束

    千次阅读 2019-05-06 16:47:23
    文章目录方案一:单张方案二:两张方案三:两张并添加外键约束 把用户信息及其收货地址保存在数据中 方案一:单张 创建表 create table user_info( id char(36) primary key, user_name varchar(30) not ...
  • MySQL创建外键约束语句

    千次阅读 2019-10-28 11:37:51
    id int(10) primary key auto_increment comment '教师主键', name varchar(50) not null comment '教师姓名' ); create table student( id int(10) primary key auto_increment comment '学生主键', n...
  • 删除不是特别常用,特别是对于存在外键关联的,删除更得小心。但是在开发过程中,发现Schema设计的有问题而且要删除现有的数据库中所有的来重新创建也是常有的事情;另外在测试的时候,也有需要重新创建数据库...
  • Mysql中取消外键约束

    千次阅读 2018-10-03 10:00:42
    Mysql中如果之间建立的外键约束,则无法删除及修改结构。 解决方法是在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0; 然后将原来的数据导出到sql语句,重新创建后,再把数据使用sql导入, 然后再...
  • 在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表之间的关联关系。  在实际开发中,数据库中一般不会存在外键,阿里的开发手册中也强制不使用外键与级联操作,一切...
  • mysql创建表时添加外键约束产生Cannot add foreign key constraint 例如创建了user(user_id pk)和role(role_id pk),当创建user_role(user_id fk,role_id fk)关联的时候就出现问题。 1.所添加外键必须是另一...
  • Mysql添加外键约束

    千次阅读 2018-08-15 18:25:26
    ·添加外键约束:altertable从addconstraint外键(形如:FK_从_主)foreignkey(从外键字段)references主(主键字段); 如果mysql报错:Error Code: 1215. Cannot add foreign key constraint (foreign keys) ...
  •  再建一个b,并给它外键约束:    建立外键约束的语句:constraint `外键名` foreign key(ab_id) references `a`(a_id);  foreign key(ab_id) references `a`(a_id); 默认给予外键名,不会重复。   ...
  • mysql 创建表添加外键约束注意

    千次阅读 2017-10-11 20:40:18
    (1)外键对应的字段数据类型不一致 (2)设置外键时“删除时”设置为“SET NULL” (3)两张的存储引擎不一致
  • 建表时指定外键约束 create table 表名( 字段列表......, [constraint 索引名] foreign key(本的字段) references 外表(外表字段) ); 建表后修改 alter table 表名 add [constraint 索引名] foreign ...
  • 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用PowerDesigner建立物理...再把结果中的删除语句拿出来执行,删除数据库中所有外键约束 SELECT CONCAT('ALTER
  • MySQL外键约束结构的修改

    千次阅读 2020-07-06 12:14:45
    外键约束 1. 非空约束 not null 表示字段不可为null null 表示字段可以为null create table tb3( name varchar(20) not null, age int unsigned null ); 2. 唯一约束 用于保证中记录的唯一性, 可以不是主键,...
  • 使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的进行创建、检索、更新和删除等操作都是些比较简单的过程。理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器端脚本语言...
  • 在“多对多”创建外键时,我遇到了类似的错误,该的主键由2个外键和另一个普通列组成。 I fixed the issue by correcting the referenced table name ie company, as shown in the corrected code below: 我...
  • SELECT @@FOREIGN_KEY_CHECKS; 查询当前外键约束是否打开 SET FOREIGN_KEY_CHECKS=1; 设置为1的时候外键约束是打开的,设置为0的时候外键约束是关闭的;
  • mysql数据库中,有时会用到外键约束FOREIGN KEY。这些外键约束也可以使用触发器TRIGGER来实现。当然,外键约束和触发器都是不提倡使用的。因为外键约束和触发器容易给数据库服务器增加额外的负担,造成性能下降。...
  • [mysql主键、外键约束]表创建完成后,再添加主键约束 今天在做数据库作业时,发现了问题,我不小心忘了写主键约束,查了书籍,全都是在插入数据时写的约束,上网找到了一个解决方案试验后找到了它的公式。 alter ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,867
精华内容 19,946
关键字:

mysql创建表外键约束

mysql 订阅