临时表中的自动增量

时间:2012-04-17 02:41:41

标签: mysql sql auto-increment temp-tables

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

以下是我正在尝试的内容:

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

2 个答案:

答案 0 :(得分:5)

首先,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`));

答案 1 :(得分:1)

key是一个保留字,所以你必须逃脱它:

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

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