代码之家  ›  专栏  ›  技术社区  ›  membersound

具有显式列数据类型的Mysql视图?

  •  0
  • membersound  · 技术社区  · 6 年前

    如何设置列的数据类型 mysql view

    CREATE VIEW person_view AS
    SELECT 'Test' AS VARCHAR(20) person_firstname,
           person.age AS int(2) person_age
    FROM person;
    

    餐桌人员:

    #firstname, lastname, age
    john, doe, 8
    jane, doe, 5
    

    VARCHAR(4) 名字和 int(1) 为了年龄。但事实上我想支持 VARCHAR(20) int(2) 对于视图中的那些列。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Mark Wagoner    6 年前

    尝试使用CAST或CONVERT

    CREATE VIEW myview AS SELECT CAST('Test' AS VARCHAR(20)) Column1 FROM mysource;
    
        2
  •  0
  •   Tim Biegeleisen    6 年前

    视图只是位于定义它的基础表的顶部,因此视图通常不允许我们更改表定义。例如,如果您想创建一个视图,该视图只包含一些可能更大字符的前20个字符 varchar 列,您可以使用 LEFT

    CREATE VIEW yourView AS (
        SELECT LEFT(some_col, 20) AS some_col_short
        FROM mysource
    )
    

    但即使在这里,我们也没有改变表的定义,只是改变了查看底层数据的方式。