mysql表创建错误#1089

时间:2016-02-14 11:50:28

标签: mysql sql

我们想在mysql DB中创建一个表,但它无法正常工作。

错误消息显示:

  

#1089 - 不正确的前缀键;使用的关键部分不是字符串,使用的长度比关键部分长,或者存储引擎不支持唯一的前缀键

这是代码:

CREATE TABLE `student_billing`.`payment` (
`id` INT(10) NOT NULL AUTO_INCREMENT ,
`student_name` INT(255) NOT NULL ,
`student_roll` INT(255) NOT NULL ,
`student_batch_id` INT(255) NOT NULL ,
`student_course_name` INT(255) NOT NULL ,
`student_paid_ammount` INT(255) NOT NULL ,
`student_paid_date` DATETIME(6) NOT NULL , 
`student_payment_recivedby` INT(255) NULL ,
 PRIMARY KEY (`id`(10))) ENGINE = MyISAM COMMENT = 'Students Billing DB';

2 个答案:

答案 0 :(得分:1)

在声明PRIMARY KEY时,您不需要指定字段的长度。试试这个:

CREATE TABLE `student_billing`.`payment` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `student_name` INT(255) NOT NULL,
  `student_roll` INT(255) NOT NULL,
  `student_batch_id` INT(255) NOT NULL,
  `student_course_name` INT(255) NOT NULL,
  `student_paid_ammount` INT(255) NOT NULL,
  `student_paid_date` DATETIME(6) NOT NULL,
  `student_payment_recivedby` INT(255) NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM COMMENT='Students Billing DB';

答案 1 :(得分:0)

/ DDL信息 /

CREATE TABLE `payment` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
  `student_name` INT(255) NOT NULL,
  `student_roll` INT(255) NOT NULL,
  `student_batch_id` INT(255) NOT NULL,
  `student_course_name` INT(255) NOT NULL,
  `student_paid_ammount` INT(255) NOT NULL,
  `student_paid_date` DATETIME NOT NULL,
  `student_payment_recivedby` INT(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=latin1 COMMENT='Students Billing DB'