2015-12-04 23 views
5

Bana şu hata veriyor phpmyadmin bir tablo oluştururken bir sorun vardır: ubuntu içinde mariadb kullanmaYanlış önek anahtar MySQL

CREATE TABLE `b2b`.`users` (`id` BIGINT NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(30) NOT NULL , 
`surnames` VARCHAR(80) NOT NULL , 
`birthdate` DATE NOT NULL , 
`drivingdoc` VARCHAR(20) NOT NULL , 
`acdate` DATE NOT NULL , 
`countrydoc` VARCHAR(20) NOT NULL , 
`province` VARCHAR(20) NOT NULL , 
`locality` VARCHAR(35) NOT NULL , 
`address` VARCHAR(150) NOT NULL , 
`number` VARCHAR(20) NOT NULL , 
`flat` VARCHAR(20) NOT NULL , 
`door` VARCHAR(20) NOT NULL , 
`description` VARCHAR(2000) NOT NULL , 
PRIMARY KEY (`id`(7))) ENGINE = InnoDB; 

:

#1089 - Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys

Bu yapmak sorgu en az.

cevap

1

Bu Birincil Anahtar sözdizimi, daha önce gördüğüm hiçbir şeydir.

CREATE TABLE `b2b`.`users` (
`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    .... 
) ENGINE = InnoDB; 

Yoksa

CREATE TABLE `b2b`.`users` (
`id` BIGINT NOT NULL AUTO_INCREMENT, 
    .... 
PRIMARY KEY (id) 
) ENGINE = InnoDB; 
6

istiyorsanız sorun şu: Bu deneyin

PRIMARY KEY (`id`(7)) 

Kullanmak zorunda bir anahtar olarak bir dizi bölümünü kullanamazsınız Bütün şey. Ayrıca, sayısal türler için uzunlukların belirtilmesi en iyi ihtimalle yararsızdır ve en kötüye zarar verir.

Değiştir:

PRIMARY KEY (`id`) 
0

Sen sql çeşitli hatalar var, bu yüzden `(7)` esasen bu bağlamda işe yaramaz bu sql

CREATE TABLE `b2b`.`users` (`id` INT(7) NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(30) NOT NULL , 
`surnames` VARCHAR(80) NOT NULL , 
`birthdate` DATE NOT NULL , 
`drivingdoc` VARCHAR(20) NOT NULL , 
`acdate` DATE NOT NULL , 
`countrydoc` VARCHAR(20) NOT NULL , 
`province` VARCHAR(20) NOT NULL , 
`locality` VARCHAR(35) NOT NULL , 
`address` VARCHAR(150) NOT NULL , 
`number` VARCHAR(20) NOT NULL , 
`flat` VARCHAR(20) NOT NULL , 
`door` VARCHAR(20) NOT NULL , 
`description` VARCHAR(255) NOT NULL , 
PRIMARY KEY (`id`)) ENGINE = InnoDB; 
+0

ile farkı bulmaya, çok. –

+0

'Farkı bulmaya çalışın' yardımcı olmuyor. – Christian