【发布时间】:2015-12-01 19:12:32
【问题描述】:
现在,我创建的数据库中有 10 列,但我无法创建数据库表,并且出现“#1067 - Invalid default value for 'primary_key”错误。
这是我的sql代码:
CREATE TABLE `quiz`.`user_details` ( `primary_key` INT(6) UNSIGNED NOT NULL DEFAULT '1' AUTO_INCREMENT , `foreign_key` INT(6) UNSIGNED NOT NULL DEFAULT '1' AUTO_INCREMENT , `firstname` VARCHAR(20) NOT NULL , `lastname` VARCHAR(20) NOT NULL , `username` VARCHAR(20) NOT NULL , `password` VARCHAR(20) NOT NULL , `email` VARCHAR(20) NOT NULL , `phone_number` INT(10) NOT NULL , `address` CHAR(50) NOT NULL , `exam_taking` INT(3) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`primary_key`(6)), UNIQUE `foreign_key` (`foreign_key`)) ENGINE = InnoDB;
【问题讨论】:
-
从您的声明中删除
DEFAULT '1'。您不能以这种方式默认自动递增字段。 -
去掉 DEFAULT '1' 并重试
-
并注意
'1'是一个字符串。正确地说,它应该只是1,使其成为数字文字。 -
查看您的表定义后,我真的希望您不打算以纯文本形式存储用户
passwords...您应该使用为 salted hashes 提供更多空间。