Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL Crie várias tabelas de uma só vez


O MySQL está ficando confuso porque você não está delimitando suas consultas. Adicione um ponto e vírgula após o primeiro CREATE declaração:
private function buildDB() {
    $sql = <<<MySQL_QUERY
        CREATE TABLE IF NOT EXISTS headings (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100)
        );

        CREATE TABLE IF NOT EXISTS titles (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100)
        )
MySQL_QUERY;

    return mysql_query($sql);
}

Além disso, certifique-se de que MySQL_QUERY está no início da linha com nenhum outro caractere, exceto talvez um ponto e vírgula , conforme o Heredoc documentação .

Visto que o acima não parece funcionar, experimente este código:
private function buildDB() {
    $sql1 = "CREATE TABLE IF NOT EXISTS headings (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100))";

    $sql2 = "CREATE TABLE IF NOT EXISTS titles (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100))";
MySQL_QUERY;

    return mysql_query($sql1) && mysql_query($sql2);
}

Você poderia use mysqli_multi_query() (a versão do MySQL não existe), mas você teria que usar o MySQLi então. O código acima retorna o AND lógico das duas consultas, então você ainda obtém um 0 devolvido se um falhar.