一列,两个名字,mysql

DrG*_*DrG 5 mysql sql alias

我正在尝试标准化我的 mysql 数据库中的列命名。在转换期间,我需要能够使用新旧列名访问给定表的列。具体来说,这两个查询需要返回相同的结果。

SELECT `old` FROM `table`;
SELECT `new` FROM `table`;
Run Code Online (Sandbox Code Playgroud)

此外,插入到新列名中的任何新数据都应该通过旧列名可用;反之亦然。

Gor*_*off 3

我相信你正在寻找风景。您可以将视图定义为:

create view v_table as
    select t.*, `old` as `new`
    from `table` t;
Run Code Online (Sandbox Code Playgroud)

假设没有命名冲突,这将为您提供两者。

现在,您可能想更进一步。您可以重命名旧表并让视图采用旧表的名称:

rename table `table` to `old_table`;
create view t as
    select t.*, `old` as `new`
    from `old_table` t;
Run Code Online (Sandbox Code Playgroud)

这样,引用的所有内容都table将开始使用具有新列名称的视图。