【问题标题】:Auto Increment in Temporary Table临时表中的自动增量
【发布时间】:2012-04-28 09:18:40
【问题描述】:

我正在尝试创建一个具有自动递增关键字段的临时表。但是我一直遇到语法错误。

这是我正在尝试的:

CREATE TEMPORARY TABLE
    RETURN_ARTISTS
        (KEY INT(11) NOT NULL AUTO_INCREMENT,
        ARTIST_1_KEY INT(11),
        ARTIST_2_KEY INT(11));

INSERT INTO RETURN_ARTISTS (1,1);

DELETE TABLE RETURN_ARTISTS;

这是我不断收到的错误:

Err] 1064 - 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 'INT(11) NOT NULL AUTO_INCREMENT,
        ARTIST_1_KEY INT(11),
        ARTIST_2_KEY INT(' at line 3

【问题讨论】:

    标签: mysql sql auto-increment temp-tables


    【解决方案1】:

    key 是保留字,因此您必须对其进行转义:

        (`KEY` INT(11) NOT NULL AUTO_INCREMENT,
         ^---^--- escapes
    

    或者,最好使用不同的字段名称。

    【讨论】:

      【解决方案2】:

      首先key是保留字,用`转义

      其次,当使用 auto_increment 列时,该列必须定义为键。

      CREATE TEMPORARY TABLE
      `RETURN_ARTISTS`
          (`KEY` INT(11) NOT NULL AUTO_INCREMENT,
          ARTIST_1_KEY INT(11),
          ARTIST_2_KEY INT(11),
          KEY (`KEY`));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-03
        • 1970-01-01
        • 2021-12-11
        • 2017-03-07
        • 2011-02-10
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多