如何创建一个创建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 相关文章推荐
MySQL表的增删改查基础教程
Apr 07 MySQL
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
MySQL 8.0 之不可见列的基本操作
May 20 MySQL
Mysql官方性能测试工具mysqlslap的使用简介
May 21 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
MySQL子查询中order by不生效问题的解决方法
Aug 02 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
Feb 24 MySQL
Nebula Graph解决风控业务实践
Mar 31 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
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
php中static和const关键字用法分析
2016/12/07 PHP
php实现数据库的增删改查
2017/02/26 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
jquery.validate使用攻略 第一部
2010/07/01 Javascript
div层的移动及性能优化
2010/11/16 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
基于jquery实现放大镜效果
2015/08/17 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
简单介绍Python中的floor()方法
2015/05/15 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
使用K.function()调试keras操作
2020/06/17 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
简单而又朴实的个人求职信分享
2013/12/12 职场文书
培训心得体会
2013/12/29 职场文书
手工社团活动方案
2014/02/17 职场文书
完美主义个人的自我评价
2014/02/17 职场文书
白血病捐款倡议书
2014/05/14 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
个人工作总结怎么写?
2019/04/09 职场文书