2015-12-04 20 views
5

Tôi có một vấn đề tạo ra một bảng với phpmyadmin, mang đến cho tôi những lỗi sau:sai chính tiền tố MySQL

#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

Đây là câu hỏi mà tôi làm:

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; 

Sử dụng MariaDB trong ubuntu tối thiểu.

Trả lời

1

Cú pháp khóa chính đó là những gì tôi chưa từng thấy trước đây. Hãy thử điều này:

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

Hoặc nếu bạn muốn

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

Vấn đề là:

PRIMARY KEY (`id`(7)) 

Bạn không thể sử dụng phần của một số như một chìa khóa, bạn phải sử dụng các tất cả mọi thứ. Ngoài ra, chỉ định độ dài cho các loại số là vô dụng ở mức tốt nhất và gây thiệt hại nhiều nhất.

Thay đổi:

PRIMARY KEY (`id`) 
0

Bạn có một vài sai sót trong sql của bạn, vì vậy hãy thử để tìm ra sự khác biệt với sql này

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

Các '(7)' về cơ bản là vô dụng trong bối cảnh đó, quá. –

+0

'cố gắng tìm sự khác biệt' không hữu ích. – Christian

Các vấn đề liên quan