如何创建一个创建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
详解GaussDB for MySQL性能优化
May 18 MySQL
MySQL 重命名表的操作方法及注意事项
May 21 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MYSQL如何查看进程和kill进程
Mar 13 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 MySQL
Mysql排查分析慢sql之explain实战案例
Apr 19 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
理解javascript对象继承
2016/04/17 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
python matplotlib坐标轴设置的方法
2017/12/05 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
最新大学职业规划书范文
2013/12/30 职场文书
个人求职信范文分享
2014/01/06 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
初中语文教学反思范文
2016/03/03 职场文书
2019各种保证书范文
2019/06/24 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL