我正在尝试在 MYSQL 中创建下表并给出错误,
CREATE TABLE CUSTOMER (
CUS_ID INT NOT NULL AUTO_INCREMENT,
CUS_NAME VARCHAR,
CUS_DOB DATE,
CUS_ADDR VARCHAR,
CUS_EMAIL VARCHAR,
CUS_TEL VARCHAR,
CUS_PW VARCHAR,
CUS_JOINDATE DATETIME,
CUS_LASTACCESS DATE)
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' CUS_DOB DATE, CUS_ADDR VARCHAR, CUS_EMAIL VARCHAR, CUS_TEL VARCHAR, CUS_PW' at line 3
Run Code Online (Sandbox Code Playgroud)
它有两个问题。
首先,您需要为VARCHAR
列指定最大数据长度。
其次,该AUTO_INCREMENT
列必须是PRIMARY KEY
.
以下 DDL 语句将起作用:
CREATE TABLE CUSTOMER (
CUS_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
CUS_NAME VARCHAR(32),
CUS_DOB DATE,
CUS_ADDR VARCHAR(128),
CUS_EMAIL VARCHAR(64),
CUS_TEL VARCHAR(16),
CUS_PW VARCHAR(32),
CUS_JOINDATE DATETIME,
CUS_LASTACCESS DATE
);
Run Code Online (Sandbox Code Playgroud)
显然,您需要更改VARCHAR
类型以反映数据所需的大小。
您必须为您的 VARCHAR 字段指定一个长度,并使您的 AUTO_INCREMENT 字段成为主键。我在这里为您编造了长度 - 您应该考虑每个字段实际需要的最大长度。
CREATE TABLE CUSTOMER (
CUS_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
CUS_NAME VARCHAR(30),
CUS_DOB DATE,
CUS_ADDR VARCHAR(50),
CUS_EMAIL VARCHAR(30),
CUS_TEL VARCHAR(20),
CUS_PW VARCHAR(30),
CUS_JOINDATE DATETIME,
CUS_LASTACCESS DATE)
Run Code Online (Sandbox Code Playgroud)
其他一些建议:
这是CREATE TABLE和数据类型的 MySQL 文档