Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL Mehrere Tabellen gleichzeitig erstellen

MySQL wird verwirrt, weil Sie Ihre Abfragen nicht begrenzen. Fügen Sie nach dem ersten CREATE ein Semikolon hinzu Aussage:

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

Stellen Sie außerdem sicher, dass MySQL_QUERY steht am Anfang der Zeile mit keinen anderen Zeichen, außer vielleicht einem Semikolon , gemäß dem Heredoc Dokumentation .

Da das obige nicht zu funktionieren scheint, versuchen Sie es mit diesem Code:

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

Sie könnten Verwenden Sie mysqli_multi_query() (die MySQL-Version existiert nicht), aber Sie müssten dann MySQLi verwenden. Der obige Code gibt das logische UND der beiden Abfragen zurück, sodass Sie immer noch eine 0 erhalten zurückgegeben, wenn einer fehlschlägt.