MySQL插入数据(六)中

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: MySQL插入数据(六)

一.一.四 插入时常见错误


1 . 主键重复


如现在已经 有id=2 了,再插入到 id=2的记录。


201911191653287.png


2 . 插入时违反约束。 包括 不为空约束,唯一约束。 (mysql不支持 检查约束)


如 name 是不为空的约束。 在插入记录时,如果name 为null了,则会报错。


20191119165334638.png


3 . 外键约束时,子表插入


如果存在着外键约束, 如 u 表和 dept部门表。 那么插入的 u表中的deptId 的值要么为空, 要么是 dept表里面的 id主键的某个值。


     A .创建表 u 和dept


20191119165344161.png


     B 往部门表里面插入一条数据。


  insert into dept(id,name) values(1,'信息管理部');


20191119165354137.png


     C 往 u表里面 插入一条 deptId=null 的数据。


  insert into u(id,name,deptId) values(1,'两个蝴蝶飞',null);


20191119165403422.png


     D. 往u 表里面添加一条 deptId=1的数据。 在dept表里面存在id=1的数据。


  insert into u(id,name,deptId) values(2,'两个蝴蝶飞',1);


20191119165408847.png


     E 往 u 表里面 添加一条 deptId=2的数据。 在dept表里面不存在id=2的数据。 会报错。


  insert into u(id,name,deptId) values(3,'两个蝴蝶飞',2);


20191119165416180.png


4 . 列名1,列名2… 列名n 不小心写错了。 如 description 写成了 desc


  mysql> insert into user(id,name,sex,age,desc) values(3,'两个蝴蝶飞','男',24,'一个快乐的程序员');


ERROR 1064 (42000): You have an error in your SQL syntax;

check the manual that corresponds to your MySQL server version for the right syntax to use near ‘desc) values(3,‘两个蝴蝶飞’,‘男’,24,‘一个快乐的程序员’)’ at line 1

5 . 列名列表与 属性值的列表没有一一对应,导致数据类型不一致。 如第三个值是sex, 却写成 age的填充, 第四个是age,却写成 sex的填充。


  insert into user(id,name,sex,age,description) values(4,'两个蝴蝶飞',24,'男','一个快乐的程序员');


20191119165435970.png


二. 插入记录的一部分


命令:


  insert into 表名(列名1,列名2 ...) values(属性值1,属性值2...);


牵扯到的列名,用插入的属性值, 没有牵扯到的列名, 如果是自动增长,就使用自动增长,如果不是自动增长,是默认约束,就用默认约束的值, 如果均没有,就用默认值 null,但该值设置了不为空约束,那么就报错, 否则的话,才正常插入默认值 null 值。


也支持写入 全部的列名,达到与上面一致的结果。


关于 主键约束和自动增长,上面已经提到了,就不再次讲解了。


目前 user 表中的数据值为:


20191119165648975.png


二.一 插入全部的列名


  insert into user(id,name,sex,age,description) values(104,'王凌风','男',24,'一个想改变命运的可怜人');


20191119165656741.png


全部插入,其中 104 可以用 default 或者null 代替。


二.二 省略主键,只插入 name,sex,age,description


  insert into user(name,sex,age,description) values('张三','男',24,'想不到名字了');


20191119165704111.png


用自动增长的值 auto_increment 来代替 id


二.三 省略默认值, 只插入 name,age,description


  insert into user(name,age,description) values('李四',24,'实在想不到名字了');


20191119165711515.png


用默认值 ‘男’ 来代替 sex.


二.四 省略值,但该值有 不为空的约束。 只插入 age 和description


  insert into user(age,description) values(24,'元名');


20191119165720253.png


name是非空约束, 所以必须要为 name添加值, 不能省略。


二.五 默认值填充。 只插入name 值


  insert into user(name) values('王五');


有图片。


201911191653287.png


其中, age 和description 均用默认值 null 来填充。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
canal 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在进行整库同步MySQL数据到StarRocks时,遇到全量数据可以同步,但增量数据无法同步,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用问题之如何查看数据离线同步每天从MySQL抽取的数据量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2天前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
12 4
|
6天前
|
SQL 缓存 关系型数据库
|
2天前
|
关系型数据库 MySQL 数据库
MySQL数据库开发之多表查询数据准备及案例实操
MySQL数据库开发之多表查询数据准备及案例实操
11 1
|
5天前
|
存储 关系型数据库 MySQL
关系型数据库mysql数据文件存储
【6月更文挑战第15天】
15 4
|
5天前
|
canal 关系型数据库 MySQL
蓝易云 - 详解canal同步MySQL增量数据到ES
以上就是使用Canal同步MySQL增量数据到Elasticsearch的基本步骤。在实际操作中,可能还需要根据具体的业务需求和环境进行一些额外的配置和优化。
25 2
|
9天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之同步MySQL数据并EP(复杂事件处理)时,编译报错,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
10天前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
10天前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用问题之如何提高Flink从MySQL读取数据的速度并减少延迟
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。