我目前正在研究视图......但是我看到有一个视图类型“带有检查选项”(transact sql)...我很感到困惑它做了什么......请帮助不多
答案 0 :(得分:0)
它不是视图类型,而是视图选项,使视图作为插入/更新操作的约束 只有在视图可以检索插入的记录时,才可以通过视图在表格中插入或记录 只有在视图可以检索更新的记录时,才能通过视图更新表的记录。
PostgreSQL演示
create table mytable (i int);
create view myview as select i from mytable where i <= 10 with check option;
insert into myview (i) values (1),(2),(3);
19:26:00 [插入 - 3行,0.010秒]处理命令... 1 执行的语句,3行受影响,执行/获取时间:0.010 / 0.000 sec [1成功,0错误]
insert into myview (i) values (11);
19:26:20 [INSERT - 0行,0.000秒] [代码:0,SQL状态:44000] 错误:新行违反了查看选项&#34; myview&#34;详情: 失败的行包含(11)。 ......执行1条语句,0行 受影响的,执行/获取时间:0.000 / 0.000秒[0成功,1错误]
update myview set i=i*10 where i=1;
19:27:29 [UPDATE - 1行,0.000秒]命令已处理... 1 执行的语句,1行受影响,执行/获取时间:0.000 / 0.000 sec [1成功,0错误]
update myview set i=i*10 where i=2;
19:27:42 [UPDATE - 0 rows,0.000 secs] [代码:0,SQL状态:44000] 错误:新行违反了查看选项&#34; myview&#34;详情: 失败的行包含(20)。 ......执行1条语句,0行 受影响的,执行/获取时间:0.000 / 0.000秒[0成功,1错误]