如何创建一个创建MySQL数据库中的datetime类型


Posted in MySQL onMarch 21, 2022

环境系统平台:Microsoft Windows (64-bit) 10版本:4.5

瀚高数据库中支持使用以下语句创建用户定义的数据类型:

  • ​CREATE DOMAIN​:它创建了一个用户定义的数据类型,可以有可选的约束,基于其他基本类型,实质是定义一个域。
  • ​CREATE TYPE​:它通常用于使用存储过程创建复合类型(两种或多种数据类型混合的数据类型)。

一、domain用法及示例

假如有以下表结构:

create table test_domain (id varchar,md5 text not null check(length(md5)=32));

其中md5列的类型及约束,可以定义一个domain来抽象,如下:

highgo=# create domain md5 as

highgo-# text not null

highgo-# check (

highgo(#     length(value) = 32

highgo(# );

CREATE DOMAIN

highgo=# 

highgo=# \dD md5

                                  List of domains

 Schema | Name | Type | Collation | Nullable | Default |           Check            

--------+------+------+-----------+----------+---------+----------------------------

 public | md5  | text |           | not null |         | CHECK (length(VALUE) = 32)

(1 row)

highgo=# create table test_domain (id varchar,md5 md5);

CREATE TABLE

highgo=# insert into test_domain values('1','2');

ERROR:  value for domain md5 violates check constraint "md5_check"

highgo=# insert into test_domain values('2','76a2173be6393254e72ffa4d6df1030a');

INSERT 0 1

二、创建MySQL中datetime类型

highgo=# create domain datetime as timestamp without time zone;

highgo=# create table t_time (id int,create_time datetime);

CREATE TABLE

highgo=# \d+ t_time

                                     Table "public.t_time"

   Column    |   Type   | Collation | Nullable | Default | Storage | Stats target | Description 

-------------+----------+-----------+----------+---------+---------+--------------+-------------

 id          | integer  |           |          |         | plain   |              | 

 create_time | datetime |           |          |         | plain   |              | 

Access method: heap

highgo=# insert into t_time values (1,now()),(2,now());

INSERT 0 2

highgo=# 

highgo=# select * from t_time;

 id |        create_time         

----+----------------------------

  1 | 2021-08-03 19:28:11.207324

  2 | 2021-08-03 19:28:11.207324

(2 rows)

三、create type用法及示例

CREATE TYPE name AS

    ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )

CREATE TYPE name AS ENUM

    ( [ 'label' [, ... ] ] )

CREATE TYPE name AS RANGE (

    SUBTYPE = subtype

    [ , SUBTYPE_OPCLASS = subtype_operator_class ]

    [ , COLLATION = collation ]

    [ , CANONICAL = canonical_function ]

    [ , SUBTYPE_DIFF = subtype_diff_function ]

)

CREATE TYPE name (

    INPUT = input_function,

    OUTPUT = output_function

    [ , RECEIVE = receive_function ]

    [ , SEND = send_function ]

    [ , TYPMOD_IN = type_modifier_input_function ]

    [ , TYPMOD_OUT = type_modifier_output_function ]

    [ , ANALYZE = analyze_function ]

    [ , INTERNALLENGTH = { internallength | VARIABLE } ]

    [ , PASSEDBYVALUE ]

    [ , ALIGNMENT = alignment ]

    [ , STORAGE = storage ]

    [ , LIKE = like_type ]

    [ , CATEGORY = category ]

    [ , PREFERRED = preferred ]

    [ , DEFAULT = default ]

    [ , ELEMENT = element ]

    [ , DELIMITER = delimiter ]

    [ , COLLATABLE = collatable ]

)

CREATE TYPE name

创建示例:

CREATE TYPE compfoo AS (f1 int, f2 text);

CREATE FUNCTION getfoo() RETURNS SETOF compfoo AS $$

    SELECT fooid, fooname FROM foo

$$ LANGUAGE SQL;

CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed');

CREATE TABLE bug (

    id serial,

    description text,

    status bug_status

);

CREATE TYPE float8_range AS RANGE (subtype = float8, subtype_diff = float8mi);

到此这篇关于如何创建一个创建MySQL数据库中的datetime类型的文章就介绍到这了,更多相关创建datetime类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
mysql 8.0.24 安装配置方法图文教程
May 12 MySQL
新手入门Mysql--概念
Jun 18 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
Mysql案例刨析事务隔离级别
Sep 25 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
mysql 体系结构和存储引擎介绍
May 06 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
MySQL 原理与优化之Limit 查询优化
Aug 14 MySQL
mysql 获取时间方式
Mar 20 #MySQL
mysql 生成连续日期及变量赋值
Mar 20 #MySQL
MySQL派生表联表查询实战过程
MySQL学习之基础命令实操总结
Mar 19 #MySQL
MySQL学习之基础操作总结
Mar 19 #MySQL
Pycharm远程调试和MySQL数据库授权问题
Mar 18 #MySQL
MySQL 主从复制数据不一致的解决方法
You might like
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
django做form表单的数据验证过程详解
2019/07/26 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python3注册全局热键的实现
2020/03/22 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
基于python 取余问题(%)详解
2020/06/03 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
英国团购网站:Groupon英国
2017/11/28 全球购物
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
小学生期末评语大全
2014/04/21 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
小学生交通安全寄语
2015/02/27 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript