PLese MySql语法出了什么问题

问题描述

CREATE TABLE users(
    user_id int(11)  auto_increment primary key,f_name VARCHAR(255) NOT NULL,l_name VARCHAR(255) not NULL,u_name VARCHAR NOT NULL UNIQUE,phone int(15) not null UNIQUE,email VARCHAR not null UNIQUE,pwd VARCHAR not null,confpwd VARCHAR not null,state VARCHAR(255),lga VARCHAR(255) DEFAULT null,preference enum('m','f','mf') DEFAULT 'mf',gender enum('m','f') DEFAULT null,profile_image VARCHAR(255),bio VARCHAR(1000) DEFAULT null,forgot_pwd_code VARCHAR (255),forgot_pwd_time TIMESTAMP DEFAULT NULL,created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,hobbies_id int(11),FOREIGN KEY (hobbies_id) REFERENCES hobbies (userId) ON DELETE NO ACTION ON UPDATE NO ACTION
)  ENGINE=InnoDB DEFAULT CHARSET=latin1;

我不断收到此错误

您的sql语法有误;检查与您的MariaDB服务器版本相对应的手册以在第5行“ NOT NULL UNIQUE,phone int(15)not null UNIQUE,email VARCHAR not null”附近使用正确的语法

解决方法

VARCHAR数据类型需要一个长度(代表允许的最大字符数)-不提供语法错误。

不仅对于列uname,而且对于pwdconfpwd,这都是正确的。这些列中的每一个都应像varchar(<N>)那样声明,其中<N>是列的长度,而不仅仅是varchar