【问题标题】:MySQL - Error: Missing right parenthesisMySQL - 错误:缺少右括号
【发布时间】:2016-02-14 18:10:22
【问题描述】:

我正在尝试使用 SQLTalk for Window 创建一个名为 SITANAG 的新表。当我执行这个命令时:

CREATE TABLE SITANAG
(
   ANAGCOD INT NOT NULL UNIQuE,
   PRIMARY KEY(ANAGCODE)
);

我收到此错误:

ANAGCOD INT NOT NULL UNIQUE,
                     ^
Error: Missing right parenthesis

有人知道为什么会报错吗?

感谢您的宝贵时间

【问题讨论】:

    标签: mysql sql create-table


    【解决方案1】:

    您不必明确地将列设为 NOT NULL 和 UNIQUE。主键默认为 NOT NULL 和 UNIQUE。试试这个:

    CREATE TABLE SITANAG
    (
       ANAGCOD  INT, 
       PRIMARY KEY(ANAGCOD )
    );
    

    DEMO

    顺便说一句,当您在主键中命名列时出现拼写错误,它应该是 ANAGCOD 或 ANAGCODE

    manual 说:

    PRIMARY KEY 是必须定义所有键列的唯一索引 作为 NOT NULL。如果它们没有明确声明为 NOT NULL,MySQL 如此含蓄地(并且默默地)声明它们。

    【讨论】:

    • 现在它给出了这个错误 PRIMARY KEY(ANAGCOD) ^ Error: Primary key column must be NOT NULL or NOT NULL WITH DEFAULT
    • @AndreaFino:- 我不确定您在尝试什么,因为我添加的查询应该可以工作。此外,如果你愿意,你可以像这样添加 NOT NULL CREATE TABLE SITANAG ( ANAGCOD INT NOT NULL, PRIMARY KEY(ANAGCOD ) );
    • 如果我输入 NOT NULL 它可以工作,但是当我尝试执行像这样的简单插入时 INSERT INTO SITANAG (ANAGCOD) VALUES(1) 它给了我一个类似 Table SITANAG 处于不完整状态的错误跨度>
    • 是的,我也是,但我在 SQLTalk for windows 上执行它。
    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多