请将此翻译成中文:MySQL命令:
FLUSH TABLES;
清空当前数据库中的所有表,还是服务器中的每个表?
我正在使用MySQL 5.0 - 文档不清楚,尽管它提到:
FLUSH TABLES WITH READ LOCK;
将为所有数据库执行此操作。
谢谢。
请将此翻译成中文:MySQL命令:
FLUSH TABLES;
清空当前数据库中的所有表,还是服务器中的每个表?
我正在使用MySQL 5.0 - 文档不清楚,尽管它提到:
FLUSH TABLES WITH READ LOCK;
将为所有数据库执行此操作。
谢谢。
这都是数据库。
我尝试查找这个问题,但我也无法找到权威答案。
FLUSH TABLES
, but it doesn t say specifically.mysql_server/sql/sql_base.cc
but couldn t find the answer quickly.我认为答案是开发人员认为非常明显,因此他们永远不需要说它的那些事情之一。
根据内部文档,MySQL表缓存保存了最近使用的表的列表。没有提到特定于数据库的表缓存,似乎在MySQL服务器中只有一个表缓存。
“FLUSH TABLES” 被描述为强制关闭所有已打开的表(在表缓存中的表)。没有提到此操作仅限于一个数据库,但您可以在参数中指定单个表来执行“FLUSH TABLES”。因此,默认情况下,我假设此操作适用于整个表缓存,因此适用于MySQL服务器上所有具有打开文件的数据库。
when you do just a mysql_connect and then "show tables" for example -> mysql_error(): No Database selected
with "flush tables" there is no mysql_error, so i think the answer is every database
除非你逐个指定表格,否则FLUSH TABLES
会清空所有数据库。
语法是:
FLUSH TABLES tbl_name [, tbl_name] ...
带着 READ LOCK
:
FLUSH TABLES tbl_name [, tbl_name] ... WITH READ LOCK
为了包含数据库中的所有表,您可以获取查询SHOW TABLES
,以显示所选数据库中的所有表。因此,通过一些编辑,查询将类似于:
FLUSH TABLES db_name.table_1,
db_name.table_2,
db_name.table_3,
...