由于语法错误,我无法创建SQL表

时间:2019-09-18 10:19:23

标签: mysql database mysql-workbench

我尝试在本地SQL数据库中创建一个表。我遵循了一个教程,最后出现语法错误。我检查了几个类似的stackoverflow线程,解决方案是删除保留字...但是在我的代码中,我也找不到保留字。

我的代码哪里出问题了?

create table teams (
    team_id int(11) not null PRIMARY KEY AUTO_INCREMENT,
    name varchar() not null,
    logo varchar() not null,
    founded int(4) not null,
    venue_capacity int(6) not null,
    squad_value int(5) not null,
    total_national_trophies int(3) not null
); 

错误消息:

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ') not null,
    logo varchar() not null,
    founded int(4) not null,
    ven' in Zeile 3

2 个答案:

答案 0 :(得分:1)

您需要为VARCHAR列指定大小,例如VARCHAR(255)

大小表示可以插入到列中的最大字符数(不是字节)。

重写后的语句可能如下所示:

CREATE TABLE teams (
    team_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    logo VARCHAR(255) NOT NULL,
    founded INT(4) NOT NULL,
    venue_capacity INT(6) NOT NULL,
    squad_value INT(5) NOT NULL,
    total_national_trophies INT(3) NOT NULL
); 

*我更喜欢大写我的SQL关键字。这只是一个偏好问题,在执行上绝对没有区别。

答案 1 :(得分:0)

您的查询应为:

create table teams (
    team_id int(11) not null PRIMARY KEY AUTO_INCREMENT,
    name varchar(255) not null,
    logo varchar(255) not null,
    founded int(4) not null,
    venue_capacity int(6) not null,
    squad_value int(5) not null,
    total_national_trophies int(3) not null
)

added varchar(255)