示例#1
0
 private function dropPrimaryKey(MidataConstraint $primaryKey)
 {
     $tableName = $primaryKey->tableName();
     $adapter = $this->adapter();
     $sql = "";
     if ($adapter->isMysql()) {
         $table = $adapter->table($tableName);
         $primaryKey = $table->primaryKey();
         if (count($primaryKey) == 1) {
             $column = $table->column($primaryKey[0]);
             if ($column->sequence()) {
                 // prubujemy usunac klucz podstawowy z kolumny ktora
                 // jest oznaczona jako auto_increment, wiec zanim
                 // usuniemy klucz musimy usunac rowniez auto_increment
                 // z kolumny
                 $ddlColumn = MidataDDL::factory($adapter, MidataDDL::COLUMN);
                 $column->sequence(false);
                 $alter = $ddlColumn->alter($column);
                 $sql .= "\n{$alter}";
             }
         }
     }
     $sql .= "\nALTER TABLE `{$tableName}` DROP PRIMARY KEY";
     return "{$sql};";
 }