视图中列的数据类型

Posted

技术标签:

【中文标题】视图中列的数据类型【英文标题】:Data type of column in view 【发布时间】:2012-01-24 09:48:25 【问题描述】:

我需要用视图替换一些旧表。如何在视图中指定列类型? 例如。旧表包含列 int(10) unsigned。我的视图将其替换为int(11)cast(mycolumn as unsigned) 将其转换为int(11) unsigned。但是旧的 .net-application 在类型转换期间会产生错误(我无法修改它来修复此错误)。 我能做什么?

【问题讨论】:

【参考方案1】:

我从未听说有一种方法可以为任何已知数据库(oracle、mssql、mysql、postgres)中的视图列手动指定数据类型。它根据正在选择的真实表列的数据类型或某些函数自动计算,例如CAST 就像你的情况一样。所以解决方案可能是使用强制转换。

【讨论】:

我明白,但是 Mysql 中的标准转换不够灵活,无法满足我的需求。可能有存储过程或其他方式的任何解决方案【参考方案2】:

使用视图列所需的返回类型定义一个函数。使用您的函数计算所需的值。视图列的类型将作为函数返回类型。

【讨论】:

【参考方案3】:

对于那些感兴趣的人: 我创建了一个“假”物化视图,它的加载速度要快得多。然后我更改所需的列类型。

【讨论】:

以上是关于视图中列的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

更改数据库中列的数据类型

更改增量表中列的数据类型

Toad 问题:Oracle 类型作为显示所有记录的表中列的数据类型

如何更改 BigQuery 中列的数据类型

如何更改 SQL Server 中列的数据类型?

更改 SQL Server DB 中列的数据类型时出错 - Java