/**
  * Utility method to set en return the table constraints to put in a SQL create table query
  *
  * @return     string  The formatted string to put in a SQL create table query
  */
 private function createTableConstraints() : string
 {
     $constraints = $this->entity->getConstraints();
     $sql = '';
     if (isset($constraints['primary'])) {
         $sql .= ',' . PHP_EOL . "\tCONSTRAINT `" . $constraints['primary']['name'] . '`';
         $sql .= ' PRIMARY KEY (' . $constraints['primary']['columns'] . ')';
     }
     if (isset($constraints['unique']) && $constraints['unique'] !== '') {
         $sql .= ',' . PHP_EOL . "\tUNIQUE `" . $this->entity->getTableName() . '_unique_constraint`';
         $sql .= ' (' . $constraints['unique'] . ')';
     }
     if (isset($constraints['foreignKey'])) {
         $names = array_keys($constraints['foreignKey']);
         foreach ($names as $name) {
             $sql .= ',' . PHP_EOL . "\tCONSTRAINT `" . $name . '`';
             $sql .= ' FOREIGN KEY (' . $constraints['foreignKey'][$name]['columns'] . ')';
             $sql .= PHP_EOL . "\t\tREFERENCES `" . $constraints['foreignKey'][$name]['tableRef'] . '`';
             $sql .= '(' . $constraints['foreignKey'][$name]['columnsRef'] . ')';
             if (isset($constraints['foreignKey'][$name]['match'])) {
                 $sql .= PHP_EOL . "\t\tMATCH " . $constraints['foreignKey'][$name]['match'];
             }
             if (isset($constraints['foreignKey'][$name]['onDelete'])) {
                 $sql .= PHP_EOL . "\t\tON DELETE " . $constraints['foreignKey'][$name]['onDelete'];
             }
             if (isset($constraints['foreignKey'][$name]['onUpdate'])) {
                 $sql .= PHP_EOL . "\t\tON UPDATE " . $constraints['foreignKey'][$name]['onUpdate'];
             }
         }
     }
     return $sql;
 }