MySQL:视图中列的数据类型与使用的表不同

时间:2018-07-22 15:25:00

标签: mysql

我有一个挑战。我能够解决这个问题,但我不明白原因,为什么这首先发生,因此我希望有人能解释mysql的行为。

挑战说明: 我创建了一个视图。该视图包含两个查询和一个联合。 第一个查询是这样的: 选择t.column1,t.column2,t.column3 从table1在哪里.... 第二张表是这样的: 选择t.column1,t.column2,t.column3 FROM table1 AS t JOIN table 2 ON(...)WHERE ....

表1中的数据类型为: column1 TINYINT(1) column2 INT(5) column3 TINYINT(1)

奇怪的行为: 当我在information_schema中检查视图的COLUMN_TYPE时, 列的COLUMN_TYPES与基于其的表不同: 第1列TINYINT(4) column2 INT(11) column3 TINYINT(4)

甚至陌生人的行为: 当我仅在query1或query2上创建视图(没有UNION)时,我得到 与表中相同的COLUMN_Types =>预期结果 =>因此,我怀疑列类型的更改与UNION和使用默认的INT值(11)有关

我通过重写查询来解决它,并将两个查询合并为一个查询 无需使用UNION。

有人知道为什么MySQL会有这种奇怪的行为吗? 目前我无法解释。

谢谢 基督徒

0 个答案:

没有答案