MYSQLi Auto_Increment fehler. Was mach ich falsch?
lska
- php
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.
Hello,
<?php
$connection = mysqli_connect("localhost", "root", "","data");
$query = "CREATE TABLE IF NOT EXISTStesttable
(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
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
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.