Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当数据库达到100条记录/行时,如何清空数据库?_Mysql_Sql_Database - Fatal编程技术网

Mysql 当数据库达到100条记录/行时,如何清空数据库?

Mysql 当数据库达到100条记录/行时,如何清空数据库?,mysql,sql,database,Mysql,Sql,Database,当MySQL数据库达到100条记录/行时,如何自动清空它? 数据库很快就变大了,我不能因为学校的原因一直清空它(我不能在那里使用我的笔记本电脑)。 当表中有很多记录时,表单的操作将需要更长的时间才能完成,这就是为什么我希望在达到100条记录时删除这些记录。 我是MySQL的新手&我真的需要一个能解决我问题的答案:) 数据库名称为:db181894_name 表格是:姓名 MySQL代码:jsfiddle.net/LFNHr/尝试限制向表中添加新记录 DELIMITER $$ CREATE TR

当MySQL数据库达到100条记录/行时,如何自动清空它? 数据库很快就变大了,我不能因为学校的原因一直清空它(我不能在那里使用我的笔记本电脑)。 当表中有很多记录时,表单的操作将需要更长的时间才能完成,这就是为什么我希望在达到100条记录时删除这些记录。 我是MySQL的新手&我真的需要一个能解决我问题的答案:)

数据库名称为:db181894_name

表格是:姓名


MySQL代码:jsfiddle.net/LFNHr/

尝试限制向表中添加新记录

DELIMITER $$

CREATE TRIGGER trigger1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
  SELECT COUNT(*) INTO @cnt FROM table1;
  IF @cnt >= 100 THEN
    TRUNCATE TABLE  table1;
  END IF;
END
$$

DELIMITER ;

请注意,在大型InnoDb表上,计数操作可能会很慢。

删除100之后的记录的最简单方法是每次添加一个int++或一个在添加主键时跟踪主键的列表

尽管如此,正如大多数其他人所说,100条记录只是沙漠中的一粒沙子。如果让我猜一猜,问题很可能出在您的查询中,或者在进行查询的代码中

如果您正在执行以下操作:

SELECT * FROM things
foreach (item in items){
  SELECT * FROM things // again
}
这会引起一个问题。你能发布你的代码和你的记录的模拟版本吗

编辑:

是的,从代码的外观来看,您正在执行一个select,然后对于查询返回的每个项目,它会对API执行另一个查询(实际上是第二个查询…只是不是本地查询)

如果您对Likers表进行了查询,并构建了另一个名为API_Results的表,并用您从facebook获取的信息填充了尽可能多的数据,并使用API处理您尚未看到的内容。。。它很可能会走得更快

例如,您在数据库中构建了第二个表,其中包含从API收集的所有字段,然后是从本地数据库请求所述数据的方法(如果存在)。。。如果没有,它会从API中提取它来填充您的本地副本以及您正在构建的页面

重新编辑:

tuples1 = SELECT * FROM Likers

foreach( item in tuples1):
  tuples2 = SELECT * from API_Results WHERE primarykey_in_tuples1 == field_in_API_Results
  if(tuples2 == NOTHING):
    // Grab API From FaceBOok
    // INSERT API_Results (value, names, in, table) VALUES (some, values, from, facebook)
    // Generate Page from Values
  else:
    // Generate Page from tuples2

告诉我这是否有意义-咖啡因

将记录留在那里,努力使表单处理运行得更快。100条记录很小。mysql可以有效地处理数百万行。如果您的查询滞后于100,也许您应该发布您的查询以供审阅。您可能正在执行导致阻塞的操作(如嵌套在选择中等),或者表设置不正确。我使用的web宿主不允许在中处理超过100条记录。如果表中的记录超过100条(提交表单时),则显示“内部服务器错误”。这就是为什么我试图将记录限制为100,而100将被自动删除。如果您的业务(案例)允许您清空数据库,那么为什么您首先要保留数据?别理它!如果您只想存储100条记录,请将记录存储在内存中的
映射中,或者使用一个只存储内存的数据库。@Amir Pashazadeh,但用户需要使用。但如果用户提交数据时数据库中的记录超过100条,则会显示“内部服务器错误”。所以我不能忽略它,因为它显示了一个我需要修复的错误:)Thanks@user3213765参见EditHey@caffineaddition,代码是什么?你说我应该从API中收集字段以加快进程:)你能帮我解决一下你刚才说的问题吗?我对所有MySQL代码都是新手Thanks@user3213765给我一分钟,我会写一些psudocode我把代码放在哪里?我是否必须删除旧的并放上这个,还是保留旧的并将这个添加到php代码的底部?:)谢谢,如果您只想限制Select的返回次数,请使用将您的语句更改为
Select*from Likers limit 10