0

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

这是我正在尝试的:

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
4

2 回答 2

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`));
于 2012-04-17T03:00:01.073 回答
1

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

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

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

于 2012-04-17T02:50:23.593 回答