Ouzo\Tools\Model\Template\Dialect\PostgresDialect::getSequenceName PHP Метод

getSequenceName() публичный Метод

public getSequenceName ( $tableColumns, $primaryKey )
    public function getSequenceName($tableColumns, $primaryKey)
    {
        $primaryColumnInfo = Arrays::getValue($tableColumns, $primaryKey);
        if (!$primaryColumnInfo || empty($primaryColumnInfo->default)) {
            return '';
        }
        preg_match("/nextval\\('(?<sequence>.*)'.*\\)/", strtolower($primaryColumnInfo->default), $matches);
        return Arrays::getValue($matches, 'sequence');
    }

Usage Example

Пример #1
0
 /**
  * @test
  */
 public function shouldExtractSequenceNameFromPrimaryKeyDefault()
 {
     //given
     $dialect = new PostgresDialect('test');
     $columns = array('primary' => new DatabaseColumn('primary', 'int', "nextval('test_id_seq'::regclass)"));
     //when
     $sequence = $dialect->getSequenceName($columns, 'primary');
     //then
     $this->assertEquals('test_id_seq', $sequence);
 }