sql >> Base de Datos >  >> RDS >> Mysql

SQL Crear varias tablas a la vez

MySQL se está confundiendo porque no estás delimitando tus consultas. Agregue un punto y coma después del primer CREATE declaración:

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);
}

Además, asegúrese de que MySQL_QUERY está al principio de la línea sin otros caracteres, excepto tal vez un punto y coma , según el Heredoc documentación .

Al ver que lo anterior no parece funcionar, prueba 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);
}

podrías usa mysqli_multi_query() (la versión de MySQL no existe), pero entonces tendrías que usar MySQLi. El código anterior devuelve el AND lógico de las dos consultas, por lo que sigue obteniendo un 0 devuelto si uno falla.