当前位置: 首页 > 编程笔记 >

MySQL ENUM数据类型的不同属性是什么?

司寇灵均
2023-03-14
本文向大家介绍MySQL ENUM数据类型的不同属性是什么?,包括了MySQL ENUM数据类型的不同属性是什么?的使用技巧和注意事项,需要的朋友参考一下

可以使用以下影响允许值的属性来定义MySQL ENUM类型-

  • NOT NULL-  在ENUM类型中,默认情况下允许NULL值。要禁止NULL值,我们需要在描述ENUM列时使用NOT NULL属性。

  • NULL  -NULL属性是DEFAULT NULL的同义词。NULL的索引值为NULL。

  • DEFAULT  -DEFAULT属性使ENUM数据类型在未指定值时具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该字段,则将插入DEFAULT之后的值。DEFAULT表达式中不允许使用函数。对于ENUM数据类型,DEFAULT值包括NULL和空字符串('')。

示例

下面的示例将展示如何将这些属性与ENUM数据类型一起使用。

mysql> SET SESSION sql_mode = '';

mysql> Create Table enumtesting(e_value ENUM('a','1')NOT NULL DEFAULT '1',id TINYINT NOT NULL);

mysql>Insert into
enumtesting(e_value,id)values('1','1'),('',2),(NULL,3),('abc',4);
Records: 4 Duplicates: 0 Warnings: 3

mysql> show warnings;
+---------+------+----------------------------------------------------+
| Level   | Code |  Message                                           |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'e_value' at row 2       |
| Warning | 1048 | Column 'e_value' cannot be null                    |
| Warning | 1265 | Data truncated for column 'e_value' at row 4       |
+---------+------+----------------------------------------------------+
3 rows in set (0.00 sec)

mysql> Select * from enumtesting;
+----+---------+
| e_value | id |
+---------+----+
| 1       |  1 |
|         |  2 |
|         |  3 |
|         |  4 |
+---------+----+
4 rows in set (0.00 sec)

mysql> insert into enumtesting(id) values(5);

mysql> Select * from enumtesting;
+---------+----+
| e_value | id |
+---------+----+
| 1       | 1 |
|         | 2 |
|         | 3 |
|         | 4 |
| 1       | 5 |
+---------+----+
5 rows in set (0.00 sec)

mysql> select e_value, e_value+0 AS enum_index, id from enumtetsing;
+---------+------------+----+
| e_value | enum_index | id |
+---------+------------+----+
| 1       |          2 |   1|
|         |          0 |   2|
|         |          0 |   3|
|         |          0 |   4|
| 1       |          2 |   5|
+---------+------------+----+
5 rows in set (0.00 sec)
 类似资料:
  • 问题内容: 在persistence.xml JPA配置文件中,可以有如下一行: 或有时: 我的问题是: 和之间有什么区别? 我还注意到缺少事务类型的一些persistence.xml文件。这是正确的吗? 问题答案: 默认值 在JavaEE环境中,默认值为 JTA ;在JavaSE环境中,默认值为 RESOURCE_LOCAL 。 RESOURCE_LOCAL 与您一起负责()创建和跟踪 您必须使

  • 对Mongoose来说非常陌生--我正在处理一个现有的项目,并且被赋予了更改一些模型属性的任务。我理解如果模型包含这种类型的属性 此属性引用了另一个模型/模式,要访问该链接的模型/模式,需要填充它以访问此属性。 但是在我正在审查的代码中(我没有写)有许多这种类型的属性 其中引用了另一个架构,但没有类型。这是同一种关系吗,并且是隐含的?这是子文档吗? 另外一个问题是:如果在模型中我想引用链接模型(或

  • 我试图设置两个线程,它们在另一个类中增加或减少一个整数。我对这个属性的同步有一些问题。 这是我的主要类,我在其中设置了线程和计数器类: 这是我的柜台课: 这是我的Thread1类:(runnable类是一样的,只是用“实现Runnable”而不是“扩展线程”) 但是,我的输出始终是10000000。尽管我同步了两种方法。有人能解释这是怎么回事吗?

  • 我正在尝试将现有项目转换为使用Spring数据和Neo4j,但我遇到了一些问题。当我尝试生成项目时,我得到以下异常: 我似乎找不到任何关于为什么会出现这个错误的好信息,我也不确定到底是什么导致了这个错误。 以下是大部分超节点类: 它源自AbstractMapValues类: 如您所见,这些旨在表示地图中的点。我的项目中有一个 Neo4j 空间依赖关系,它应该允许我使用索引类型.POINT。 然后我

  • 在Swift中,有人能解释一下如何用从原始属性子类的另一个对象重写超类的属性吗? 如果将底盘改为“var”,则会出现错误: 我在指南中“重写属性”下找到的唯一东西表明,我们必须重写getter和setter,这可能用于更改属性的值(如果它是'var'),但更改属性类怎么办?

  • 我使用的是Primefaces 3.5中的<code>p:dataTable</code>以及延迟加载和动态列。 我有三种类型的列,区别在于过滤的输入。一个有,一个有,最后一个什么都没有。 列通过标记呈现。 一切正常,但不是“懒惰”。我还有,其中每个选项卡都包含这个数据表,并且每个请求都会初始化所有bean。我知道,是在构建时评估的,所以它在tabView之前。 因此,我的问题是:如何在<code