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 に答える