예제 #1
0
    /**
     * create table
     *
     * @covers Phossa\Query\Dialect\Common::create()
     */
    public function testCreateTable01()
    {
        $str = <<<EOT
CREATE TEMPORARY TABLE IF NOT EXISTS "new_table"
(
    "id" INT NOT NULL AUTO_INCREMENT,
    "name" VARCHAR(20) NOT NULL DEFAULT 'NONAME' UNIQUE,
    "alias" VARCHAR(10) CHECK (),
    PRIMARY KEY ("id"),
    UNIQUE ("name"(4) ASC, "alias") ON CONFLICT REPLACE,
    UNIQUE ("id", "alias") ON CONFLICT ROLLBACK,
    FOREIGN KEY (...)
)
    DELAY_KEY_WRITE=1,
    MAX_ROWS=100
EOT;
        $crt = $this->builder->create()->table('new_table')->temp()->ifNotExists()->addCol('id', 'INT')->notNull()->autoIncrement()->addCol('name', 'VARCHAR(20)')->notNull()->unique()->defaultValue('NONAME')->addCol('alias', 'VARCHAR(10)')->colConstraint('CHECK ()')->primaryKey(['id'])->uniqueKey(['name(4) ASC', 'alias'], 'ON CONFLICT REPLACE')->uniqueKey(['id', 'alias'], 'ON CONFLICT ROLLBACK')->constraint('FOREIGN KEY (...)')->tblOption('DELAY_KEY_WRITE=1')->tblOption('MAX_ROWS=100');
        $this->assertEquals(preg_replace("/\r\n/", "\n", $str), $crt->getStatement($this->settings));
    }