MySQL error with NOT NULL


MySQL error with NOT NULL

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

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 NOT NULL,'在3号线

我想不出代码出了什么问题。。。

您需要指定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不是最好的主意。请考虑使用普通字符串。