sql >> Database >  >> RDS >> Mysql

SQL Meerdere tabellen tegelijk maken

MySQL raakt in de war omdat u uw zoekopdrachten niet afbakent. Voeg een puntkomma toe na de eerste CREATE verklaring:

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

Zorg er ook voor dat MySQL_QUERY staat aan het begin van de regel met geen andere tekens, behalve misschien een puntkomma , volgens de Heredoc documentatie .

Aangezien het bovenstaande niet lijkt te werken, probeert u deze code eens:

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

Je zou gebruik mysqli_multi_query() (de MySQL-versie bestaat niet), maar dan zou je MySQLi moeten gebruiken. De bovenstaande code retourneert de logische AND van de twee zoekopdrachten, dus je krijgt nog steeds een 0 geretourneerd als een mislukt.



  1. Krijg het aantal records beïnvloed door INSERT of UPDATE in PostgreSQL

  2. Lijst met MySQL-specificaties voor datumnotatie

  3. Inzicht in Always ON-beschikbaarheidsgroep tussen op Linux gebaseerde SQL Server-instanties. Deel 1

  4. Python MySQLdb-updatequery mislukt