public Connection::nextIdDelete()
File
- core/lib/Drupal/Core/Database/Driver/mysql/Connection.php, line 261
Class
- Connection
- MySQL implementation of \Drupal\Core\Database\Connection.
Namespace
Drupal\Core\Database\Driver\mysql
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public function nextIdDelete() { // While we want to clean up the table to keep it up from occupying too // much storage and memory, we must keep the highest value in the table // because InnoDB uses an in-memory auto-increment counter as long as the // server runs. When the server is stopped and restarted, InnoDB // reinitializes the counter for each table for the first INSERT to the // table based solely on values from the table so deleting all values would // be a problem in this case. Also, TRUNCATE resets the auto increment // counter. try { $max_id = $this ->query( 'SELECT MAX(value) FROM {sequences}' )->fetchField(); // We know we are using MySQL here, no need for the slower db_delete(). $this ->query( 'DELETE FROM {sequences} WHERE value < :value' , array ( ':value' => $max_id )); } // During testing, this function is called from shutdown with the // simpletest prefix stored in $this->connection, and those tables are gone // by the time shutdown is called so we need to ignore the database // errors. There is no problem with completely ignoring errors here: if // these queries fail, the sequence will work just fine, just use a bit // more database storage and memory. catch (DatabaseException $e ) { } } |
Please login to continue.