2015-12-04 35 views
5

私は私に次のエラーを与えるのphpMyAdminでテーブルを作成する問題、持っている:UbuntuのでMariaDBを使用して不正なプレフィックスキーの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

を最小。

答えて

1

主キーの構文はこれまでに見たことが何もありません。

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

をそれとも、

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

をしたい場合、問題がある::これを試してみてください

PRIMARY KEY (`id`(7)) 

あなたが使用する必要があり、キーとして数の一部を使用することはできません全部。また、数値型の長さを指定すると、せいぜい無駄になり、最悪の場合には破損します。

変更するには:

PRIMARY KEY (`id`) 
0

あなたはSQLでいくつかのエラーを持っているので、 `(7)`、本質的にその文脈では役に立たないこの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

との違いを探してみてください、あまりにも。 –

+0

「違いを見つけることを試みてください」は役に立ちません。 – Christian

関連する問題