You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建不可更新的ViewDeC视图:禁止通过视图更新MySQL的Branch表

创建不可更新的ViewDeC视图(MySQL)

需求是创建视图展示Branch表的所有分支信息,同时禁止通过该视图修改原表数据,在MySQL中可以通过两种方式实现:

方法1:使用WITH READ ONLY子句(MySQL 8.0及以上版本)

这是最直观的只读视图创建方式,MySQL 8.0及以后版本支持该语法,直接标记视图为只读,任何通过视图的增删改操作都会被数据库拒绝。

创建视图的SQL代码:

CREATE VIEW ViewDeC AS
SELECT BranchNo, Street, City, PostCode
FROM Branch
WITH READ ONLY;

方法2:利用视图不可更新特性(兼容低版本MySQL)

如果使用MySQL 8.0以下版本,不支持WITH READ ONLY,可以通过构造让数据库无法生成更新计划的视图来实现只读效果。比如添加DISTINCT关键字(由于BranchNo是唯一标识,添加后不会改变查询结果,但会让视图变为不可更新):

CREATE VIEW ViewDeC AS
SELECT DISTINCT BranchNo, Street, City, PostCode
FROM Branch;

验证效果

尝试通过视图执行更新操作,例如:

UPDATE ViewDeC SET City = 'Edinburgh' WHERE BranchNo = 'B003';

此时MySQL会抛出错误,提示无法通过该视图修改基表数据。


内容的提问来源于stack exchange,提问作者visaolangle00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:55:10