2012-04-17 28 views
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

まず、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

keyは予約語なので、あなたはそれをエスケープする必要があります:

をここで

は私がしようとしているものです

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

または、異なるフィールド名を使用することをお勧めします。すべての