sql >> Databasteknik >  >> RDS >> Mysql

SQL Skapa flera tabeller samtidigt

MySQL blir förvirrad eftersom du inte avgränsar dina frågor. Lägg till ett semikolon efter den första CREATE uttalande:

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

Se också till att MySQL_QUERY är i början av raden med inga andra tecken, förutom kanske ett semikolon , enligt Heredoc dokumentation .

Eftersom ovanstående inte verkar fungera, pröva den här koden:

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

Du kunde använd mysqli_multi_query() (MySQL-versionen finns inte), men du måste använda MySQLi då. Ovanstående kod returnerar den logiska OCH av de två frågorna, så du får fortfarande en 0 returneras om en misslyckas.



  1. Inget databasvalt fel även efter att en db har valts

  2. Slå ihop tabeller i två olika databaser?

  3. Hitta måndagar mellan 2 datum

  4. En översikt över betrodda tillägg i PostgreSQL 13