什么打破了我的SQL程序?语法不正确(

时间:2015-04-02 19:05:37

标签: sql sql-server

此代码部分

CREATE TABLE AIRPORT (
    Airport_Code int NOT NULL,
    City varchar(20) NOT NULL,
    State varchar(20) NOT NULL,
    Name varchar(25) NOT NULL,
    CONSTRAINT PK_AIRPORT PRIMARY KEY (Airport_Code)
) 

几乎与此相同,但这个给我一个错误,我无法弄清楚如何解决它

CREATE TABLE AIRPLANE_TYPE (
    Company varchar(20) NOT NULL,
    Typename varchar(20) NOT NULL,
    Max_seats int NOT NULL,
    CONSTRAINT PK_AIRPLANE_TYPE (Typename) //error is here (Typename)
)

我收到'('。

附近的错误语法错误

2 个答案:

答案 0 :(得分:4)

添加与列内联的主键将为您的主键提供废话自动生成的名称。我也不明白“鼓励主键在一列上”是一个额外的好处。

CREATE TABLE AIRPLANE_TYPE (
    Company varchar(20) NOT NULL,
    Typename varchar(20) NOT NULL,
    Max_seats int NOT NULL,
    CONSTRAINT PK_AIRPLANE_TYPE PRIMARY KEY (Typename)
)

答案 1 :(得分:2)

您错过了PRIMARY KEY。我倾向于将它直接放在列定义中:

CREATE TABLE AIRPLANE_TYPE (
    Company varchar(20) NOT NULL,
    Typename varchar(20) NOT NULL PRIMARY KEY,
    Max_seats int NOT NULL
);

除了更短的定义外,这还鼓励所有主键只有一列 - 这是一个额外的好处。