强制串行mySQL插入(或重建表更好的方式)

时间:2018-01-28 21:59:33

标签: javascript php mysql arrays ajax

我是mySQL交易的新手,我正在使用我继承的一些代码,但问题是与代码特定相关的更基本的功能。

  • 我有一个我要插入mySQL表的js数组。该 表格大小永远不会超过200个条目,通常少于100个。
  • 目前,我正在循环浏览js数组并发送个人信息 AJAX请求每个数组元素到现有的PHP文件 在它们到达时对它们进行处理,并为每个进行sql INSERT调用 元件。 async设置为' false'在js AJAX中调用。
  • 一切都运作成功 - 没有INSERTS失败,没有数据 丢失所以这不是一个代码失败的问题 - 但是当我后来拿到桌子时 从数据库加载到一个数组,按更新(添加)排序,条目的顺序是错误的,这是一个问题。

所以我对mySQL专家的问题是:是否有一个简单的握手函数我没有看到它会确保按顺序处理mySQL插入?

如果答案为否,我将需要为每个请求添加一个序列号,并在表中为其添加一列。此外,如果我要对继承的代码进行更改,我可以指出要寻找更有效的解决方案的内容。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以一次插入所有数组:

  

使用VALUES语法的INSERT语句可以插入多行。至   执行此操作,包含多个逗号分隔列值列表   括在括号内并用逗号分隔的列表。例如:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

了解更多here

答案 1 :(得分:1)

正如Paul Spiegel所说,如果您想要的是一个可重复的事件序列,最好使用auto_increment。

我假设当你说'按更新的顺序(已添加)'时,那是一个DateTime字段或表上的某些字段。如果你的插入发生得足够快,那么在相同的插入日期/时间上会有多行(该字段只有一秒的分辨率),并且MySQL不保证在发生这种情况时你总是以相同的顺序返回行。