如何创建一个创建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对于模糊查询like的一些汇总
May 09 MySQL
为什么mysql字段要使用NOT NULL
May 13 MySQL
MySQL中出现乱码问题的终极解决宝典
May 26 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
May 29 MySQL
MySQL注入基础练习
May 30 MySQL
浅谈mysql返回Boolean类型的几种情况
Jun 04 MySQL
解析MySQL binlog
Jun 11 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
Mysql超详细讲解死锁问题的理解
Apr 01 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
解决Mysql中的innoDB幻读问题
Apr 29 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中的extract的作用分析
2008/04/09 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
一些技巧性实用js代码小结
2009/10/14 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
Angular的$http与$location
2016/12/26 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
python 测试实现方法
2008/12/24 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
优秀大学生申请书
2019/06/24 职场文书
详细介绍python类及类的用法
2021/05/31 Python
JS的深浅复制详细
2021/10/16 Javascript
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
HttpClient实现文件上传功能
2022/08/14 Java/Android