protected function addPrimaryKey(Table $table) { $queries = []; $primaryColumns = $table->getPrimaryColumns(); if (!empty($primaryColumns)) { $queries[] = 'ALTER TABLE ' . $this->escapeString($table->getName()) . ' ADD ' . $this->primaryKeyString($table) . ';'; } return $queries; }
public function testMultiPrimaryKey() { $table = new Table('test'); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addColumn(new Column('identifier1', 'string'))); $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Table', $table->addColumn(new Column('identifier2', 'string'))); $table->addPrimary(['identifier1', 'identifier2']); $columns = $table->getColumns(); $this->assertCount(2, $columns); foreach ($columns as $column) { $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Column', $column); } $this->assertCount(2, $table->getPrimaryColumns()); }
protected function primaryKeyString(Table $table) { $primaryKeys = []; foreach ($table->getPrimaryColumns() as $name) { $column = $table->getColumn($name); if (!$column->isAutoincrement()) { $primaryKeys[] = $this->escapeString($column->getName()); } } if (empty($primaryKeys)) { return ''; } return 'PRIMARY KEY (' . implode(',', $primaryKeys) . ')'; }
protected function primaryKeyString(Table $table) { $primaryKeys = $this->escapeArray($table->getPrimaryColumns()); return 'PRIMARY KEY (' . implode(',', $primaryKeys) . ')'; }
protected function primaryKeyString(Table $table) { $primaryKeys = []; foreach ($table->getPrimaryColumns() as $name) { $primaryKeys[] = $this->escapeString($name); } return 'CONSTRAINT ' . $this->escapeString($table->getName() . '_pkey') . ' PRIMARY KEY (' . implode(',', $primaryKeys) . ')'; }