如何创建一个创建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 角色(role)功能介绍
Apr 24 MySQL
MySQL update set 和 and的区别
May 08 MySQL
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
mysql timestamp比较查询遇到的坑及解决
Nov 27 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
MySQL 计算连续登录天数
May 11 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模拟HTTP认证
2006/10/09 PHP
BBS(php & mysql)完整版(五)
2006/10/09 PHP
php 异常处理实现代码
2009/03/10 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
python基于socket实现网络广播的方法
2015/04/29 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python的argparse库使用详解
2018/10/09 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
django的settings中设置中文支持的实现
2019/04/28 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
美国NBA官方商店:NBA Store
2019/04/12 全球购物
护士自荐信范文
2013/12/15 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS