我需要用视图替换一些遗留表。如何在视图中指定列类型?
例如。旧表包含列int(10) unsigned
。我的观点将其替换为int(11)
,cast(mycolumn as unsigned)
将其转换为int(11) unsigned
。但旧的.net应用程序在类型转换期间会生成错误(我无法修改它以修复此错误)。
我该怎么办?
答案 0 :(得分:1)
我没有听说有任何方法可以在任何已知的数据库(oracle,mssql,mysql,postgres)中为视图列指定手动数据类型。它是基于实际表格列的数据类型自动计算的,该数据类型是选择的或在某些功能上,例如, CAST
就像你的情况一样。所以解决方案可能就是使用铸造。
答案 1 :(得分:0)
使用视图列所需的返回类型定义一个函数。使用您的函数计算所需的值。视图列的类型将被视为函数返回类型。
答案 2 :(得分:0)
对于你们感兴趣的人: 我创建了一个“伪造的”物化视图,它的加载速度要快得多。然后我改变了所需的列类型。