【问题标题】:MySQL error with NOT NULLMySQL 错误与 NOT NULL
【发布时间】:2016-01-05 15:19:07
【问题描述】:

我正在尝试在我的数据库中运行此查询:

CREATE TABLE users(
    user_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
    username VARCHAR NOT NULL, 
    userpass VARCHAR NOT NULL,
    first_name VARCHAR NOT NULL,
    last_name VARCHAR NOT NULL,
    email VARCHAR NOT NULL,
    address VARCHAR NOT NULL,
    phone BIGINT UNSIGNED NOT NULL,
    PRIMARY KEY(user_id)
)

MySQL 返回此错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在“NOT NULL”附近使用的正确语法, userpass VARCHAR NOT NULL, first_name VARCHAR 非空, ' 在第 3 行

我无法弄清楚代码有什么问题......

【问题讨论】:

  • 谢谢它的工作!我必须设置一个特定的大小吗?我的意思是,例如 VARCHAR 的范围是 0-65535。我认为 (size) 是可选的。
  • 不,尺寸不是可选的。
  • 好的,非常感谢!!!

标签: php mysql mysql-error-1064


【解决方案1】:

您需要为VARCHAR 列指定大小:

CREATE TABLE users( user_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
                   username VARCHAR(100) NOT NULL,
                   userpass VARCHAR(100) NOT NULL,
                   first_name VARCHAR(100) NOT NULL,
                   last_name VARCHAR(100) NOT NULL,
                   email VARCHAR(100) NOT NULL,
                   address VARCHAR(100) NOT NULL,
                   phone  BIGINT UNSIGNED NOT NULL,
                   PRIMARY KEY(user_id) );

SqlFiddleDemo

将电话号码存储为BIGINT 不是最好的主意。请考虑使用普通字符串。

【讨论】:

  • @BasilhsPapadopoulos 如果您的问题已经解决,您可以accept my answer :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 2014-12-30
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多