public function toString()
    {
        if (!$this->_parts['table']) {
            throw new SqlException("Invalid `CREATE TABLE` statement missing table name.");
        }

        if (!$this->_parts['columns']) {
            throw new SqlException("Invalid `CREATE TABLE` statement missing columns.");
        }

        return 'CREATE TABLE' .
            $this->_buildFlag('IF NOT EXISTS', $this->_parts['ifNotExists']) .
            $this->_buildChunk($this->dialect()->name($this->_parts['table'])) .
            $this->_buildDefinition($this->_parts['columns'], $this->_parts['constraints']) .
            $this->_buildChunk($this->dialect()->meta('table', $this->_parts['meta']));
    }