我不是mysql的专家。我有一个超过500个表的数据库,我想知道是否有方法搜索每个表中的某个记录,如果存在,则将其从表中删除。在此先感谢从mysql数据库的所有表中删除一条记录
0
A
回答
1
与此类似的东西。根据您的需要进行更改。的[删除所有表中的数据在MYSQL]
$tables = mysql_query('show tables', $conn);
foreach($acc_array as $acc)
foreach($tables as $v) {
$result1 = mysql_fetch_assoc(mysql_query("select account_num from $v where account_num = '$acc'" , $conn));
if(!empty($result1))
$result2 = mysql_query("delete from $v where account_num = '$acc'" , $conn);
}
+0
感谢那正是我需要的。 –
1
看看下面的存储过程,你可以创建:
CREATE PROCEDURE procDeleteAllTables()
BEGIN
DECLARE table_name VARCHAR(255);
DECLARE end_of_tables INT DEFAULT 0;
DECLARE cur CURSOR FOR
SELECT t.table_name
FROM information_schema.tables t
WHERE t.table_schema = DATABASE() AND t.table_type='BASE TABLE';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET end_of_tables = 1;
SET FOREIGN_KEY_CHECKS = 0;
OPEN cur;
tables_loop: LOOP
FETCH cur INTO table_name;
IF end_of_tables = 1 THEN
LEAVE tables_loop;
END IF;
SET @s = CONCAT('DELETE FROM ' , table_name);
PREPARE stmt FROM @s;
EXECUTE stmt;
END LOOP;
CLOSE cur;
SET FOREIGN_KEY_CHECKS = 1;
END
如果你需要插入特定的记录进行检查,你可以添加一个WHERE子句中这样说:
SET @s = CONCAT(CONCAT('DELETE FROM ' , table_name), ' WHERE somefield = 1');
0
$sql = "SHOW TABLES FROM dbname";
$result = mysql_query($sql);
if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_row($result)) {
echo "Table: {$row[0]}\n";
$tablename=$row[0];
$sql="DELETE FROM $tablename WHERE name='ddddd'";
echo "Table: {$sql}\n";
$res=mysql_query($sql);
}
相关问题
- 1. 从数据库的所有表中删除所有记录
- 2. 从mysql表中删除所有记录
- 3. 从MySQL数据库中删除一条记录
- 4. 当你从数据库中删除一条记录时mysql
- 5. 从sqlite数据库中的表中删除所有记录
- 6. 从MySQL数据库中删除记录
- 7. 在mysql数据库中只删除一条记录
- 8. 从数据库中删除用户的所有记录
- 9. Angular从数据库中删除一条记录
- 10. 从表中删除所有记录 - doCMD.RunSQL
- 11. 从所有表中删除记录ID
- 12. 从数组中删除一条记录
- 13. Vaadin从数据库中删除记录
- 14. 从数据库中删除记录
- 15. 从数据库中删除记录
- 16. 从数据库中删除记录
- 17. 从数据库中删除记录
- 18. 如何删除CouchDB中的数据库中的所有记录?
- 19. PHP从数据库中删除所有记录+选择当前记录
- 20. 提交表单后记录没有从数据库中删除
- 21. MySQL删除所有记录未选中
- 22. 如何从mysql表中删除重复的记录,但有1条记录
- 23. 从SQL Server数据库中的所有表数据删除,除了一些表
- 24. 使用LINQ to SQL删除数据库中的所有记录
- 25. JPA EntityManager删除数据库中的所有记录
- 26. 从数据库的所有表中删除所有行
- 27. 根据另一个数据库中的表记录删除Hive中的记录
- 28. 从临时表中删除记录时将被删除的所有记录
- 29. 从数据库中删除多条记录
- 30. 使用UITableView和核心数据从数据库中删除一条记录
可能重复(http://stackoverflow.com/questions/1885101/delete-data-from-all-tables-in-mysql) – Lix
我不想删除所有表或所有记录。我有一个函数,它接受一系列帐号并删除数据库中的记录,但是如何循环访问500多个表并检查帐号是否存在以及它是否从该表中删除 –
看看我的答案。 –