mysql - 在 MySQL 5.7 中无法使用默认函数更改列
问题描述
我试图运行此查询以掩盖“音频”列中的内容,但不断收到错误语法的错误消息
ALTER TABLE 测试
ALTER COLUMN audio varchar(10) MASKED WITH (FUNCTION = 'default()');
我在哪里错了。请帮忙
解决方案
MySQL 不支持Dynamic Data MaskingMASKED WITH
的语法。这是 Microsoft SQL Server 的专有功能。
Microsoft SQL Server 是与 MySQL 不同的 RDBMS 产品。这两种产品都具有其他产品不支持的功能和语法。
在 MySQL 5.7 中,DEFAULT
可以是常量标量值、NULL 或 CURRENT_TIMESTAMP。这些是唯一的选择(参见https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html)。
在 MySQL 8.0 中,您现在可以对列的默认值使用常量表达式(请参阅https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html)。
在这两个版本中,您都必须使用DEFAULT
关键字。
回复您的评论:
有没有其他方法,我可以为除root用户以外的其他用户隐藏此列数据
推荐阅读
- javascript - Laravel - 如果错误形式出现,希望在关闭之前阻止模式
- python - Pandas DataFrame,子集中的第一次出现
- python-3.x - 如何将登录的 Selenium Webdriver 对象传递给 Python 3 中的函数
- javascript - 如何从模块返回管道数据?
- python - 试图平衡括号但不明白我的代码有什么问题
- python - 您的 shell 未正确配置为在 dockerfile 上使用“conda activate”
- affinetransform - 仿射变换矩阵。不懂数学?
- flutter - LIstView 中的 Flutter Dismissible 事件
- unity3d - 为什么统一在动画结束时增加一帧
- apache-spark - AWS Glue - 从目录而不是数据源标头中派生架构