如何在SQL中进行查询以删除每个表中存在的所有记录。
可以使用命令delete来编写每个名称表。但是编写每个名称表需要很长时间。
我已经在MySQL中尝试DELETE FROM *
但它出错:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“*”附近使用正确的语法
答案 0 :(得分:1)
您只需对每个表执行TRUNCATE查询。您也可以使用删除,但截断通常更适合您正在做的事情。
TRUNCATE TABLE table1;
TRUNCATE TABLE table2;
TRUNCATE TABLE table2;
没有*或所有表格选择器。
答案 1 :(得分:1)
请使用此
<?php
mysql_connect('localhost', 'user', 'password');
$dbName = "database";
mysql_select_db($dbName)
$result_t = mysql_query("SHOW TABLES");
while($row = mysql_fetch_assoc($result_t))
{
mysql_query("TRUNCATE " . $row['Tables_in_' . $dbName]);
}
?>
一切顺利
答案 2 :(得分:0)
我相信MySql有一个sql语句如下:
Show tables
使用Show tables
作为命令文本创建命令对象并执行。
使用该语句可以执行查询并填充MySqlDataReader。迭代读者并将表名放在格式化的字符串中,如下所示。
// create connection string
...
while (myDataReader.Read())
{
// execute command
string command = "TRUNCATE TABLE {0}";
MySqlCommand myCommand = new MySqlCommand();
myCommand.CommandText = string.Format(command, reader[0]);
using (MySqlConnection myConnection = new MySqlConnection(myConnString))
{
myCommand.Connection = myConnection;
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
}
}
这应该足够接近,以帮助你走上正确的轨道。
答案 3 :(得分:0)
您可以使用INFORMATION_SCHEMA迭代所有表并动态执行DELETE或TRUNCATE语句。
答案 4 :(得分:0)
可以使用DELETE语句。
以下将删除所有行,但不会重置索引(例如自动增量)。
DELETE * FROM TABLEX
以下将删除所有行,索引也将被重置
TRUNCATE TABLEX
答案 5 :(得分:0)
如果要自动执行此操作,则必须在MySQL外部编写一些代码。使用show tables
获取表名,然后在每个名称上调用TRUNCATE
。