2
是否有“自定义数据类型”之类的东西?
MySQL是否支持自定义数据类型?例如,邮政编码可以存储在一个varchar(10)字段中,但可以压缩为一个int,其中带有空白选项,并带有一个有关5位或5 + 4位邮政编码的标志。 有没有办法为这些事情安装无缝数据类型?就应用程序而言,它将是字符串类型,如果应用程序传递了无效数据,则将只是数据截断(带有或不带有警告)。 可以使用自定义函数(例如,有一个INET_ATON用于IPv4地址的内置函数。但这不允许zip LIKE '12345%'进行正确索引的事情。对自定义数据类型的良好书写支持将允许标记数据类型因此,紧凑型zip int在排序时会像是一样进行排序zip varchar(10)。 这将允许该列为固定宽度,这将允许将6或10字节的变量存储空间缩减为4 byby固定宽度。 有几种适用的用途 邮递区号 IPv6地址 自定义时间戳字段,具有分钟级别的精度和容量2038,且存储使用量少于datetime,但无需支持实施年份之前的日期(例如,如果这些日期是系统中最早的日期,则最小值可以是2007年) 实现DST的时间戳(似乎不存在) 两个字母的美国状态可以存储在一个字节中 ENUM可以将long s分隔为自定义数据类型,这样,DESCRIBE在所有包装中,输出都不会显得那么混乱。 我希望数据类型处理程序的存储方式类似于函数的存储方式。 任何数据库引擎上是否都存在类似的远程功能?我主要使用MySQL,但是我很好奇它是否曾经实现过,没有让应用程序调用类似于INET_ATON函数的函数。 MS SQL确实具有这种性质,但是我想知道它是否仅仅是同义词。(例如,boolean可以是tinyint(1)或或或或postal_code之一的同义词)同义词不是我要问的。charvarchar (5910)