我有一个MySQL命令:
CREATE DATABASE IF NOT EXISTS courses;
USE courses
CREATE TABLE IF NOT EXISTS teachers(
id INT(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
name VAR_CHAR(50) NOT NULL,
addr VAR_CHAR(255) NOT NULL,
phone INT NOT NULL,
);
当我运行它时,我得到一个错误:
ERROR 1064 (42000): 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 'VAR_CHAR(50) NOT NULL, addr VAR_CHAR(255) NOT
NULL, phone INT NOT NULL, )' at line 3
3条答案
按热度按时间fnvucqvd1#
它是
varchar
而不是var_char
您应该使用SQL工具来可视化可能的错误,如 MySQL Workbench。
zysjyyx42#
MySQL不接受在列名上使用诸如'name'之类的保留字。
因此,为了避免这个问题,您可以使用反引号(`)。这样,MySQL会将它们视为列名而不是保留关键字。
试试这个:
对NAME使用反勾号
r3i60tvu3#
使用varchar而不是VAR_CHAR并省略最后一行中的逗号i.e.phoneINT NOT NULL);.在创建表格的过程中,最后一行保持“无逗号”。例如:- CREATE TABLE COMPUTER(Model varchar(50));在这里,由于我们只有一列,这就是为什么在整个代码中没有使用逗号。