[英]I need to truncate a table then insert new register, but users cant see this
这是一个很难理解的问题,但是,我需要截断一个表,同时插入新的寄存器,但是在此过程中,网站访问者看不到网站内容没有任何内容,我该如何在SQL中像--single-transation在新的缓存出现之前有“缓存的缓存”之类的东西吗?
使用重命名表切换2个表。
与ALTER TABLE不同,RENAME TABLE可以在单个语句中重命名多个表:
the_table_next
(可能需要很长时间) RENAME TABLE the_table TO the_table_prev, the_table_next To the_table;
(操作非常快) the_table_prev
执行RENAME TABLE时,不能有任何锁定的表或活动的事务。 在满足该条件的情况下,原子地完成重命名操作; 重命名过程中,没有其他会话可以访问任何表。
如果在RENAME TABLE期间发生任何错误,则该语句将失败并且不会进行任何更改。
注意 :
使用alter table rename
您需要使用2个命令==> 2个不同的事务(DDL指令)
与rename table
=> 单笔交易
如果可以截断该表,则可以假定该表没有键限制。 如果是这样,我会:
在MySQL中,您可以使用以下方式重命名表:
ALTER TABLE table_name
RENAME TO new_table_name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.