任何人都可以確認在使用PDO(PHP)的單個插入語句中插入多於一行的行時,MYSQL中的InnoDB數據庫將順序生成AI ID?在InnoDB中批量插入的順序插入ID
我正在處理一個項目,用戶可以上傳一個excel文件,該文件被excel文件中的行插入到db中。這些文件可以是一行〜10,000。爲了速度,我希望能夠插入這些塊,如果不是全部在一個查詢中。
從我讀過的文章看來,使用最後一個插入標識減去插入數目可以安全地插入已插入的標識的塊。
有沒有人有任何經驗,這不是100%安全,或任何有關這個問題的信息。
如果它幫助這裏的大概我怎麼會是將其插入
簡體插入示例(我會在套500來這樣做):
for ($i=0; $i < count($rowData['Name']); $i++) {
$insetPlaceHolders[":name$i"]=$rowData['Name'][$i];
$insetPlaceHolders[":email$i"]=$rowData['Email'][$i];
$insetPlaceHolders[":password$i"]=$rowData['Password'][$i];
$insetPlaceHolders[":employeeId$i"]=$rowData['EmployeeId'][$i];
$insetPlaceHolders[":startDate$i"]=$formData['StartDate'][$i];
$appendQuery[]="(:name$i,:email$i,:password$i,:employeeId$i,:startDate$i, {$_SESSION['companyId']})";
}
$appendQuery=implode(',',$appendQuery);
$sth = $this->dbh->prepare("INSERT INTO employees (name, email, password, custom_id, hire_date, company_id) VALUES $appendQuery");
$sth->execute($insetPlaceHolders);
別人可以同時插入有一個單列=壞 – Randy 2013-04-09 15:57:15
順序,是的......連續的,沒有,有沒有關於保證,除非你可以鎖定表格。 – 2013-04-09 15:57:33
我想說,如果您擔心順序地使用ID,那麼您的模式有問題 – 2013-04-09 16:00:06