6

我有一个 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
4

3 回答 3

11

它是varchar和不是var_char

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 VARCHAR(50) NOT NULL,
    addr VARCHAR(255) NOT NULL,
    phone INT NOT NULL
);

您应该使用 SQL 工具来可视化可能出现的错误,例如MySQL Workbench

于 2013-09-11T13:26:47.233 回答
3

尝试这个:

对 NAME 使用反引号

CREATE TABLE `teachers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `addr` varchar(255) NOT NULL,
  `phone` int(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
于 2013-09-11T13:37:04.133 回答
0

使用 varchar 代替 VAR_CHAR 并省略最后一行 iephone INT NOT NULL ); 中的逗号。创建表期间的最后一行保持“无逗号”。例如:- 创建表计算机(模型 varchar(50) );在这里,由于我们只有一列,这就是为什么在整个代码中没有使用逗号。

于 2018-06-24T17:50:25.463 回答