MySQL 8.0.23 新特性不可见列

*江西数库信息技术有限公司的原创内容未经授权不得随意使用,转载请联系小编并注明来源。


在MySQL 8.0.23之前,默认情况下,表中所有用户定义的列都是可见的。然而,从MySQL 8.0.23开始,引入了一个名为Invisible Columns的新功能,允许用户在表中隐藏特定的列。使用此功能,这些不可见的列不会出现在“SELECT*”查询中,从而提供了一种在常规查询结果中隐藏它们的方法。

若要查看不可见列的值,需要在查询中显式引用这些列。这意味着您需要在SELECT语句中提及特定的列名,以便在结果集中包含不可见的列。此功能提供了更大的灵活性和对列可见性的控制,允许用户根据其特定需求选择性地隐藏和显示列。

不可见列的一些用例,

1):不可见列可用于从常规查询中隐藏敏感信息,并仅在显式引用时显示这些信息。例如,表格可能包含客户的个人信息,如电子邮件地址或电话号码。通过使此类列不可见,用户可以防止敏感数据在应用程序中意外暴露。

2):不可见列可以帮助保持与现有应用程序的向后兼容性。如果用户希望在不影响现有应用程序的情况下将新列引入数据库,则用户可以使该列不可见,并在新应用程序中显式引用该列。通过这种方式,现有的应用程序可以在不进行任何修改的情况下继续运行。

3):即使在删除列时,不可见列也很有用。不要立即删除该列,只需将该列标记为不可见即可。当应用程序似乎在没有删除列的情况下正常工作时,请删除不可见列。通过这种方式,用户可以避免由于列下降而导致的数据丢失和性能等其他影响。

MySQL 8.0.30中引入的Generated Invisible Primary Key功能使用Invisible列为没有主键的表生成主键。

如何创建不可见列?

要创建具有不可见列的表,请在create table语句中使用新的列属性“invisible”。下面是一个示例来说明使用不可见列创建表:
-- Creating table with Invisible Columns