public function test() { $constraint = new PrimaryKey('column'); $this->assertSame(false, $constraint->isComposite()); $this->assertSame('PRIMARY KEY (`column`)', $constraint->buildCreate()); $this->assertSame('ADD PRIMARY KEY (`column`)', $constraint->buildAdd()); $this->assertSame('DROP PRIMARY KEY', $constraint->buildDrop()); $constraint = new PrimaryKey('column', 'column2'); $this->assertSame(true, $constraint->isComposite()); $this->assertSame('PRIMARY KEY (`column`, `column2`)', $constraint->buildCreate()); $this->assertSame('ADD PRIMARY KEY (`column`, `column2`)', $constraint->buildAdd()); $this->assertSame('DROP PRIMARY KEY', $constraint->buildDrop()); }
public final function setPrimaryKeyObject(PrimaryKey $primary_key) : TableInterface { if ($this->isImmutable()) { throw SchemaException::immutable(static::class); } if ($this->hasPrimaryKey()) { throw SchemaException::primaryKeyAlreadySet(static::class); } $missing = array_diff($primary_key->getColumns(), array_keys($this->getColumns())); if ($missing !== []) { throw TableException::columnNotSet(static::class, implode(', ', $missing)); } $this->primary_key = $primary_key; return $this; }