前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySql表table相关

MySql表table相关

作者头像
用户10325771
发布2023-03-01 17:19:47
5640
发布2023-03-01 17:19:47
举报

文章目录[隐藏]

修改表名

代码语言:javascript
复制
# rename
rename table 旧表名 to 新表名;
rename table my_table to new_table;

# alter
alter table 旧表名 rename [as] 新表名
alter table mytable rename as new_table;

删除表

  • drop 1、drop是DDL,会隐式提交,不能回滚,不会触发触发器。 2、drop语句删除表结构及所有数据,并将表所占用的空间全部释放。 3、drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。
  • truncate 1、truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。 2、truncate会删除表中所有记录,并且将重新设置高水线和所有的索引,缺省情况下将空间释放到minextents个extent,除非使用reuse?storage,。不会记录日志,所以执行速度很快,但不能通过rollback撤消操作(如果一不小心把一个表truncate掉,也是可以恢复的,只是不能通过rollback来恢复)。 3、对于外键(foreignkey?)约束引用的表,不能使用?truncate?table,而应使用不带?where?子句的?delete?语句。 4、truncatetable不能用于参与了索引视图的表。
  • delete 1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。 2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。 3、delete语句不影响表所占用的extent,高水线(high?watermark)保持原位置不变。 4、虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以使用这部分空。使用optimize table table_name会立刻释放磁盘空间
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改表名
  • 删除表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com