【问题标题】:How to resolve an error near NULL when creating a table创建表时如何解决接近NULL的错误
【发布时间】:2022-08-02 22:57:04
【问题描述】:

每当我尝试创建表格时

CREATE TABLE registration` (`id` INT NOT NULL , `name` VARCHAR(30) NOT NULL , `email` VARCHAR(20) NOT NULL , `password` VARCHAR(15) NOT NULL , `DOB` DATE NOT NULL , `age` INT NOT NULL , `number` BIGINT NOT NULL , `religion` VARCHAR(10) NOT NULL , `education` VARCHAR(20) NOT NULL , `profession` VARCHAR(20) NOT NULL , `gender` ENUM NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

出现以下错误

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 \'NOT NULL , PRIMARY KEY (id)) ENGINE = InnoDB\' 附近使用正确的语法

  • 如果您使用换行符和空格格式化 SQL,您可能会发现这更容易修复,因为所有内容都不会在第 1 行。
  • 您真的不想以明文形式存储密码。您需要对密码进行加盐和散列处理,这意味着它们需要的存储空间多于 15 个字符。

标签: mysql sql mariadb


【解决方案1】:

当您声明一个 ENUM 列(您的性别列)时,您必须为枚举分配所有可能的值(See here for syntax

【讨论】:

    【解决方案2】:

    ENUM 需要值,因此您需要定义它们可以获得的值

    CREATE TABLE registration (
        `id` INT NOT NULL 
        , `name` VARCHAR(30) NOT NULL 
        , `email` VARCHAR(20) NOT NULL 
        , `password` VARCHAR(15) NOT NULL 
        , `DOB` DATE NOT NULL 
        , `age` INT NOT NULL 
        , `number` BIGINT NOT NULL 
        , `religion` VARCHAR(10) NOT NULL 
        , `education` VARCHAR(20) NOT NULL 
        , `profession` VARCHAR(20) NOT NULL 
        , `gender` ENUM ('male','feaml2')
     , PRIMARY KEY (`id`)
    ) ENGINE = InnoDB;
    

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多