
是不是一个连接查询建立的,还有这个视图是不是只读的
如果是连接查询创建的视图的话,你这么 *** 作的话删除的可能不止是一个表里的数据,数据库为了保证数据的完整性,不会允许你这么做。如果是只读的话,当然也就是只有读权限。
不过看报错,你这应该是第一种情况,所以,你只能从这个构建这个视图的表里逐步删除数据,才能把你要删除视图的数据删除,这么说懂吗?
创建视图
CREATE [OR REPLACE] VIEW 视图名(列1,列2)
AS SELECT (列1,列2)
FROM ;
[WITH [CASCADED|LOCAL] CHECK OPTION]
修改视图
CREATE OR REPLACE VIEW 视图名 AS SELECT [ ] FROM [ ];
[WITH [CASCADED|LOCAL] CHECK OPTION]
删除视图
drop view 视图名称
扩展资料:
查看视图
show tables;
desc 视图名
查看视图定义
show create view 视图名称\G
通过视图变更数据
insert into 视图名
update 视图名
[WITH [CASCADED|LOCAL] CHECK OPTION] 决定了是否允许更新数据记录不再满足视图的条件。
local只要满足本视图的条件就可以更新
cascaded则必须满足所有针对该视图的所有视图的条件才可以更新,默认是cascaded。
为了防止通过视图修改导致数据无故丢失,建议加上WITH CHECK OPTION
参考资料来源:百度百科-SQL语句
sql中delete,drop
,truncate都代表删除,但3者又有一些区别
1
truncate和
delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);
依赖于该表的存储过程/函数将保留,但是变为invalid状态
2delete语句是dml,这个 *** 作会放到rollback
segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发
truncate,drop是ddl,
*** 作立即生效,原数据不放到rollback
segment中,不能回滚
*** 作不触发trigger
3delete语句不影响表所占用的extent,
高水线(high
watermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate
语句缺省情况下见空间释放到
minextents个
extent,除非使用reuse
storage;
truncate会将高水线复位(回到最开始)
4速度,一般来说:
drop>;
truncate
>;
delete
5安全性:小心使用drop
和truncate,尤其没有备份的时候否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句
回滚段要足够大
想删除表,当然用drop
想保留表而将所有数据删除
如果和事务无关,用truncate即可
如果和事务有关,或者想触发trigger,还是用delete
如果是整理表内部的碎片,可以用truncate跟上reuse
stroage,再重新导入/插入数据
在实际应用中,三者的区别是明确的。
当你不再需要该表时,
用
drop;
当你仍要保留该表,但要删除所有记录时,
用
truncate;
当你要删除部分记录时(always
with
a
WHERE
clause),
用
delete
而alter是对表结构的修改
希望对你理解有帮助。
这个你得先弄明白什么叫视图 说白了,视图就是一个或多个表根据一定的sql语句生成的一个动态的东西 好比你有两个表 表1 id name 1 aa 表2 id name 2 bbb 视图是 create view view1 as select from 表1 union all select from 表2; 视图的内容是 id name 1 aaa 2 bbb 当表1或表2里增加数据的时候,这个视图随着表是动态变化的,所以,视图不可以做增,删,改的 *** 作
以上就是关于mysql数据库里面删除图片全部的内容,包括:mysql数据库里面删除图片、SQL中视图的创建。修改,删除、VFP中SQL语句中视图删除命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)