首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL枚举类型enum字段在插入不在指定范围, 是否是”插入了enum第一个”?…「建议收藏」

刚刚在看>一书”ENUM类型”一节, 以下面的代码举例, 得出结论: “还可以看出对于不在ENUM指定范围内, 并没有返回警告, 而是插入了enum(‘M’, ‘F’)第一个...这个相当于是一个警告信息,在我本地测试 5.7 中,直接插入会报错,但是使用 ignore 后,数据能被强制插入,但是是。...INSERT ignore INTO user (sex) VALUES (5); 在服务器使用 MySQL 5.5 测试 无论是否添加 ignore 数据都能被插入,但是是。...在 MySQL 枚举类型“八宗罪” 这篇文章第七条,文中提到了,如果不合法会被处理成空字符串,在后一段中又提到了因为类型缘故,会根据枚举索引去取值。...总结:报错跟版本有关,5.5版无论是否添加igonre都可以插入,但是; 5.7版本添加ignore可以插入,但是; 不添加直接报错”ERROR 1265 (01000): Data truncated

1.7K20

MySQL字段约束 null、not null、default、auto_increment

MySQL默认情况下指定字段为NULL修饰符,如果一个字段指定为NOT NULL,MySQL则不允许向该字段插入(这里面说都为NULL),因为这是“规定”。...向这些字段中插入NULL将会导致插入下一个自动增加或者当前时间戳。 DEFAULT 修饰符: 可以使用DEFAULT修饰符为字段设定一个默认。...插入记录,您老人家忘记传该字段MySQL会自动为您设置上该字段默认。 如果一个字段中没有指定DEFAULT修饰符,MySQL会依据这个字段是NULL还是NOT NULL自动设置默认。...如果指定字段可以为NULL,则MySQL为其设置默认为NULL。...如果是NOT NULL字段,MySQL对于数值类型插入0,字符串类型插入字符串,时间戳类型插入当前日期和时间,ENUM类型插入枚举第一条。

5.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL sql_mode坑及严格模式详解

官方文档建议:使用innodb存储引擎表,考虑使用innodb_strict_mode模式sql_mode,它能增量额外错误检测功能。...ERROR_FOR_DIVISION_BY_ZERO :如果这个模式未启用,那么零除操作将会插入并且不会产生警告;如果这个模式启用,零除操作插入并产生警告;如果这个模式和严格模式都启用,零除从操作将会产生一个错误...NO_AUTO_CREATE_USER :禁止grant语句自动创建用户,除非认证信息被指定,语句必须包含一个非密码使用identified by或使用认证插件identified with....NO_AUTO_VALUE_ON_ZERO : 这个影响自增列,正常情况下可以通过插入“0”或者null来生成自增序列下一个。...NO_AUTO_VALUE_ON_ZERO模式会抑制这种行为,仅仅插入null才会生成下一个序列自增值。这个模式是非常有用的当0已经在表自增序列中存储

1.9K20

MySQL-2

有很多种方法可以指定浮点列所需要精度,这使得MySQL会选择不同数据类型或在存储进行取舍。这些精度定义是非标准,所以建议只指定数据类型而不指定精度。...CHAR类型定长MySQL总是根据定义字符串长度分配足够空间。存储CHARMySQL会删除所有的末尾空格。CHAR会根据需要采用空格进行填充以方便比较。...MySQL服务器,操作系统以及客户端连接都有时区设置。默认情况下,若插入时没有指定第一个TIMESTAMP列MySQL则设置这个列为当前时间。TIMESTAMP列默认为NOT NULL。...MySQL限制每个关联操作最多只有61张表。单个查询最好在12个表以内做关联。 全能枚举:防止过度使用枚举。...加快alter table 操作速度 MySQL执行大部分修改表结构操作方法是用新结构创建一个表,从旧表中查处所有数据插入新表,然后删除旧表。

79910

MySQL基础『数据类型』

字符,用空格填充字符串指定长度 VARCHAR(SIZE) 可变长度字符串,最大支持 65535 字符,它不会用空格填充 BLOB 二进制数据 TEXT 大文本,不支持全文索引、默认,需要注意有一些变体...,表示枚举类型,只能选取其中一个,由于在某些数据库系统中限制,ENUM 使用有时会受到争议 SET 字符串对象,表示集合类型,可以选取零个或多个 创建一个数据库 dataType mysql...这是因为 小数部分不足MySQL 自动补齐,补齐后,实际插入为 -100.00,有五位数,超出范围,自然就被拦截 MySQL 也并非是铁面无私,当我们插入数据小数部分超过指定精度MySQL...char 被称为 固定长度字符串,不过这个字符串也是有 约束 实际插入字符串长度超过 char 固定长度插入操作会被拦截,并且 char 支持最大长度为 255,大于 255 字符串注定不能使用...向其中插入,只能选择枚举中已经存在元素,并且只能选择一个 mysql> insert into votes values ('张三', '男'), ('小红', '女'); mysql> select

16710

Java后端开发规范(基于阿里开发规范)

3) 获取统计方法用 count 做前缀。 4) 插入方法用 save/insert 做前缀。 5) 删除方法用 remove/delete 做前缀。...【推荐】一个类有多个构造方法,或者多个同名方法,这些方法应该按顺序放置在一起, 便于阅读。 【推荐】循环体内,字符串连接方式,使用 StringBuilder append 方法进行扩展。...十、MySQL数据库 建立表规约 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。...【强制】在 varchar 字段上建立索引,必须指定索引长度,没必要对全字段建立索引,根据 实际文本区分度决定索引长度即可。...【强制】某一列全是 NULL ,count(col)返回结果为 0,但 sum(col)返回结果为NULL. 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

54921

Spring学习笔记(二十一)——规范开发:SpringBoot表单验证、AOP切面编程、统一返回结果和异常处理

简单事务处理 业务需求:插入两条数据插入第一条数据成功,插入第二条数据出现问题,需求保证两条数据必须同时插入,或者同时回滚不插入。...@Future 限制必须是一个将来日期 @Max(value) 限制必须为一个不大于指定数字 @Min(value) 限制必须为一个不小于指定数字 @Pattern(value...) 限制必须符合指定正则表达式 @Size(max,min) 限制字符长度必须在min到max之间 @Past 验证注解元素(日期类型)比当前时间早 @NotEmpty 验证注解元素不为...null且不为字符串长度不为0、集合大小不为0) @NotBlank 验证注解元素不为(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串空格...,在建立一个枚举类ResultEnums.java,用来统一枚举可能发生异常和错误码。

65510

MySQL必须知道点!

同时在status这类字段上标注:0表示删除,1表示正常 等枚举。 3.必须使用UTF8mb4字符集 utf8是通用字符集,mb4 在utf8上进行了扩展,支持emoj等新字符。...c)null需要更多存储,无论是表还是索引中每行中null列都需要额外空间来标识。...c)varchar可以支持模糊查询,例如:like“138%” 12.禁止使用ENUM,可使用TINYINT代替 a)增加新ENUM要做DDL操作 b)ENUM内部实际存储就是整数,你以为自己定义字符串...因为MySQL优化器在选择如何优化查询,会根据统一信息,对每一个可以用到索引来进行评估,以生成出一个最好执行计划,如果同时有很多个索引都可以用于查询,就会增加MySQL优化器生成执行计划时间,同样会降低查询性能...(3)建立组合索引,必须把区分度高字段放在前面 理由:能够更加有效过滤数据 14.关于SQL使用规范 (1)禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入列属性

67930

mysql 分区 varchar_MySQL分区总结

可以使用 values less than maxvalue 设置分区,超出明确指定分区,数据会存储在该分区,如: MySQL支持在 values less than 字句中使用表达式 partition...Range分区特别使用两种情况: 1、需要删除过期数据,只需要简单 ALTER TABLE emp DROP PARTITION p0 来删除p0分区中数据,对于具有上百万条记录表来说,删除分区要比运行一个...分区支持使用 Blob 或 Text 类型外其他类型列作为分区键 创建 Key 分区表时候,可以不指定分区键,默认会首先选择使用主键作为分区键 在没有主键情况,会选择非唯一键作为分区键,分区键唯一键必须是非...附:MySQL 分区 null 处理 1、MySQL 分区不禁止在分区键值上使用 null 2、Range 分区中,null 会被当做最小来处理 3、List 分区中,null 必须出现在枚举列表中...,否则不被接受 4、Hash/Key 分区中,null 会被当做零来处理 5、为了避免在处理 null 出现误判,推荐通过设置字段非和默认来绕开 MySQL 对 null 默认处理 发布者

3.2K20

【数据库】MySqlsql_mode模式说明

TRADITIONAL模式 :严格模式,mysql数据库插入数据,进行数据严格校验,保证错误数据不能插入,报error错误。用于事物,会进行事物回滚。...(测试时候,数据原样插入,没有转换为0000-00-00)ANSI_QUOTES :启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符。...:禁止grant语句自动创建用户,除非认证信息被指定,语句必须包含一个非密码使用identified by或使用认证插件identified with.NO_AUTO_VALUE_ON_ZERO...NO_ENGINE_SUBSTITUTION :此模式指定当执行create语句或者alter语句指定存储引擎没有启用或者没有编译,控制默认默认存储引擎自动切换。默认是启用。...举个例子,将’14:52:12.15’插入到time(1)时候,是插入’14:52:12.2’还是插入’14:52:12.1′为OFF,进行四设五入,插入14:52:12.2;为ON,舍弃多余位数

1.4K50

MySQL 快速入门(一)

基本数据类型 数值类型 日期和时间类型 字符串类型 枚举与集合类型 MySQL快速入门(一) 简介 存储数据演变过程 数据存储通过我们自己编写来决定,存到文件样式千差万别 软件开发目录规范规定文件位置..., manager FROM employee WHERE manager = NULL; # 这是错误 这个错误原因在于将一个与一个未知进行数学比较,结果仍然未知;即使是将两个进行比较...= NULL; 如果表达式 expression ,IS NULL 返回真,IS NOT NULL 返回假;如果表达式不为,IS NULL 返回假,IS NOT NULL 返回真; select...版本之后默认开启严格模式,规定多少宽度,就插入多少数据,超出报错 约束条件 desc查看表结构,查看是否可以插入 mysql> desc t5; +-------+---------+-----...baseball','others') # 集合类型 ) # 插入时候只能插入枚举类型指定字段 insert into user values(1,'hammer','male'); # 正确 insert

1.5K20

国产数据库兼容过程中涉及MySQL非严格模式

在非严格模式下,MySQL会对某些数据插入、更新和比较操作执行隐式转换,从而在一些情况下允许执行一些宽松操作,而不抛出错误或警告。...涉及主要参数说明如下: a) STRICT_TRANS_TABLES:在插入或更新数据禁止自动转换类型,确保所有数据都符合表定义数据类型范围。如果无法转换为合法数据类型,则抛出错误。...e) ERROR_FOR_DIVISION_BY_ZERO:除数为零,抛出错误而不是返回NULL。...-00-00'等 2) 非严格字符串插入:在非严格模式下,MySQL允许插入过长字符串,会自动截断超过字段长度部分 (建议已开启此类严格模式) eg: varchar(2) 类型字段,插入...可以插入150,且插入自动截断为 127 4) 非严格插入:在非严格模式下,MySQL允许插入字符串类型到数值类型字段,会将非数值字符串转换为0 (建议已开启此类严格模式) eg:

30620

MySQL(数据类型和完整约束)

L+4字节,在此L<2^24 ENUM 枚举类型,只能有一个枚举字符串 1或2个字节,取决于枚举数目(最大65535) SET 一个设置,字符串对象可以有0个或多个SET成员 1,2,3,4或8...默认情况下,插入一条记录但并没有指定TIMESTAMP这个列MySQL会把TIMESTAMP列设为当前时间。...因此需要插入记录同时插入当前时间,使用TIMESTAMP是方便,另外TIMESTAMP在��上比DATETIME更有效。...View Code 类型一 not null和default not null – 不可 default默认,创建列可以指定默认插入数据如果未主动设置,则自动添加默认 =======...==============default==================== #设置id字段有默认后,则无论id字段是null还是not null,都可以插入插入默认填入default指定默认

92120

MySQL sql_mode应该如何指定

sql_mode是个很容易被忽视变量,在5.6之前默认为,在这种设置下是可以允许一些非法操作,比如允许一些非法数据插入。在生产环境一般将这个设置为严格模式。...sql_mode分类及各定义 分类sql_mode说明启用不启用数据检查类NO_ENGINE_SUBSTITUTION指定ENGINE,需要存储引擎被禁用或不存在,该如何处理直接报错Warning...|视为字符串连接操作符而非 或 运算符- - NO_TABLE_OPTIONS 使用SHOW CREATE TABLE不会输出MySQL特有的语法部分,如 ENGINE。...mysql数据库插入数据,进行数据严格校验,保证错误数据不能插入,报error错误。...用于事物,会进行事物回滚。日期类型中月和日部分不能包含0,不能有0这样日期(0000-00-00),数据不能除0,禁止grant自动创建新用户等一些校验。

2K30

高性能MySQL(2)——Schema与数据类型优化

使用枚举(enum)代替字符串类型 枚举可以把一些不重复字符串存储成一个预定义集合,MySQL在存储枚举非常紧凑,会根据列表压缩到1到2个字节中。...MySQL在内部会将列中枚举保存为整数,在.frm文件中保存一个“数字->字符串映射关系,通过数字快速查找到具体枚举。...枚举字段排序时,并不会按照给定字符串排序,而是根据内部整数排序,所以建议列举枚举按照预想顺序给出。...查询BIT(1),结果是一个包含二进制0或1字符串,而不是ASCII码中“0”或“1”。 BIT列进行比较MySQL会将位字符串转换为十进制数字进行比较。 例如:‘111’ = 7。...即使需要存 储一个事实上”到表中,也不一定非得使用NULLO也许可以使用0、某个特殊,或者空字符串作为代替。 但是遵循这个原则也不要走极端。

67320

MySQL】03_数据类型

它不会对插入数据进行影响,数据宽度小于5位时候在数字前面需要用字符填满宽度。该项功能需要配合“ ZEROFILL” 使用,表示用 “0” 填满宽度,否则指定显示宽度无效。...DECIMAL类型不指定精度和标度,其默认为DECIMAL(10,0)。 数据精度超出了定点数类型 精度范围,则MySQL同样会进行四舍五入处理。...如果保存,数据实际长度比CHAR类型声明长度小,则会在 右侧填充 空格以达到指定长度。MySQL检索CHAR类型数据,CHAR类型字段会去除尾部空格。...ENUM类型 ---- ENUM类型也叫作枚举类型,ENUM类型取值范围需要在定义字段进行指定。 设置字段,ENUM类型只允许从成员中选取单个,不能一次选取多个。...(s) VALUES ('A,B,C,A'); #向SET类型字段插入SET成员中不存在MySQL会抛出错误

2K30

MySQL数据类型

类型 enum:枚举,“单选”类型; enum(‘选项1’,‘选项2’,‘选项3’,…); 该设定只是提供若干个选项,最终一个单元格中,实际只存储其中一个;而且出于效率考虑,这些实际存储是...“数字”,因为这些选项每个选项依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举,也可以添加对应数字编号。...当然,作为枚举插入对应数字是被允许,因为这对应数字就代表着枚举各个属性。 从此现象来说,插入数字一定是从1开始映射,有几个数就只能到几。因此0不能被插入,只有1和2能被插入。...set插入数据 与enum唯一区别,set可以同时具有多个枚举属性: NULL与' '区别 如果只像下面这样指定插入,其他属性就为。...我们知道,0在enum和set中不属于被枚举数字,0在enum中插入会报错,但在set中插入中不会显示,实际上是个空字符串

14110

数据库之数据类型详解

一、数据类型简介 数据表由多列字段构成,每一个字段指定不同数据类型,指定数据类型之后,也就决定向字段插入数据内容; 不同数据类型也决定 MySQL 在存储它们时候使用方式,以及在使用它们时候选择什么运算符号进行运算...每个时间类型有一个有效范围和一个"零"指定不合法MySQL不能表示使用"零"。 TIMESTAMP类型有专有的自动更新特性。 ?...插入年份不合法,会用0000表示。 插入年份不合法,会用0000表示。 插入年份不合法,会用0000表示。...1、char和varchar CHAR(M) 为固定长度字符串,在定义指定字符串列长,保存在右侧填充空格以达到指定长度,M 表示列长度,取值范围是 0~255 个字符,例如,CHAR(4) 定义一个固定长度字符串列...'n') 字段名指将要定义字段, n 指枚举列表中第 n 个,ENUM类型字段在取值,只能在指定枚举列表中取,而且一次只能取一个。如果创建成员中有空格,其尾部空格将自动删除。

1.6K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券