lska: MYSQLi Auto_Increment fehler. Was mach ich falsch?

Hallo,

<?php  
$connection = mysqli_connect("localhost", "root", "","data");  
$query = "CREATE TABLE IF NOT EXISTS `testtable`(`id` INT NOT NULL AUTO_INCREMENT)";  
$result = mysqli_multi_query($connection, $query);  
var_dump($result);  
?>

lasse ich das "AUTO_INCREMENT" weg funktionierts. Wo ist der Fehler? http://www.w3cyberlearnings.com/PHP_MySQLi_Create_Table Hier wird das genauso gemacht.

  1. Hello,

    <?php

    $connection = mysqli_connect("localhost", "root", "","data");
    $query = "CREATE TABLE IF NOT EXISTS testtable(id INT NOT NULL AUTO_INCREMENT)";
    $result = mysqli_multi_query($connection, $query);
    var_dump($result);
    ?>

      
    
    > lasse ich das "AUTO\_INCREMENT" weg funktionierts. Wo ist der Fehler?  
      
    Du hast keinen Primary Key definiert. Das ist eine Eigenart von MySQL. Auto-Increment geht nur für Primary Keys.  
      
    Hier nur mal schnell ein Create-Statement einer Tabelle, die ich gerade angelegt habe:  
      
    ~~~sql
      
    CREATE TABLE `positions` (  
        `id` BIGINT(20) NOT NULL AUTO_INCREMENT,  
        `position` VARBINARY(254) NOT NULL,  
        `subject` VARCHAR(500) NOT NULL,  
        PRIMARY KEY (`id`),  
        UNIQUE INDEX `position` (`position`)  
    )  
    COLLATE='utf8_general_ci'  
    ENGINE=MyISAM  
    AUTO_INCREMENT={-startwert-};  
      
    
    

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bikers-lodge.com
    1. Hello,

      lasse ich das "AUTO_INCREMENT" weg funktionierts. Wo ist der Fehler?

      Du hast keinen Primary Key definiert. Das ist eine Eigenart von MySQL. Auto-Increment geht nur für Primary Keys.

      Kleine Korrektur zu der Aussage. Es ist ein INDEX notwendig auf der einzigen Autoincrement-Spalte der Tabelle. Der muss also nicht unbedingt Primary Key sein, was sich aber meistens anbietet.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bikers-lodge.com
  2. Tach!

    lasse ich das "AUTO_INCREMENT" weg funktionierts. Wo ist der Fehler?

    Du hast es unterlassen, den Text der Fehlermeldung abzufragen. Der hätte dir gesagt, was daran verkehrt ist.

    http://www.w3cyberlearnings.com/PHP_MySQLi_Create_Table Hier wird das genauso gemacht.

    Dort wird etwas später im Statement ein Primary Key auf die Spalte gelegt.

    dedlfix.