31 $this->pdo->query(
"SET SESSION sql_mode = 'IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';");
50 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY =>
true,
51 PDO::ATTR_TIMEOUT => 300 * 60,
62 $engines = $this->
queryCol(
'SHOW ENGINES');
63 if (!in_array(
$engine, $engines)) {
70 $this->pdo->exec(
"ALTER TABLE {$table} ENGINE={$engine}");
72 $errors[$table] = $e->getMessage();
87 foreach ($ilDBPdoManager->listTables() as $table_name) {
88 $q =
"ALTER TABLE {$this->quoteIdentifier($table_name)} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;";
91 }
catch (PDOException
$e) {
116 $seqcol_name =
'sequence';
117 $query =
"INSERT INTO $sequence_name ($seqcol_name) VALUES (NULL)";
120 }
catch (PDOException
$e) {
124 $result = $this->
query(
'SELECT LAST_INSERT_ID() AS next');
125 $value =
$result->fetchObject()->next;
127 if (is_numeric($value)) {
128 $query =
"DELETE FROM $sequence_name WHERE $seqcol_name < $value";
getSequenceName($table_name)
migrateAllTablesToEngine($engine=ilDBConstants::MYSQL_ENGINE_INNODB)
const MYSQL_COLLATION_UTF8MB4
supportsEngineMigration()
queryCol($query, $type=PDO::FETCH_ASSOC, $colnum=0)
quoteIdentifier($identifier, $check_option=false)
supportsCollationMigration()
const MYSQL_ENGINE_INNODB
doesCollationSupportMB4Strings()
Class ilDBPdoMySQLFieldDefinition.
migrateAllTablesToCollation($collation=ilDBConstants::MYSQL_COLLATION_UTF8MB4)
getAdditionalAttributes()