2017-04-19 23 views
1

こんにちは、私の質問を読んでくれてありがとう!私はこのコードで構文エラーを受け取りましたが、何が間違っているのか分かりません。どんな洞察力も大変ありがとうございます。MySQL構文エラー、何が間違っているのかわからない

mysql> create table match (
-> event_id int not null, 
-> player1_id int, 
-> player2_id int, 
-> player1_score int, 
-> player2_score int, 
-> winner_id int, 
-> foreign key (event_id) references event(id) 
->); 
ERROR 1064 (42000): 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 'match (
event_id int not null, 
player1_id int, 
player2_id int, 
player1_score int' at line 1 

カンマが見つからず、イベントテーブルがID列で確実に存在します。私は何が欠けているすべてのアイデア?ありがとうございました!

+0

マッチが予約語である - ありがとう – Strawberry

答えて

2

一致はreserved wordです。バッククォートで囲む:

create table `match` ... 
+0

テーブル名のお粗末な選択!私はそれが事実かもしれないと思ったので私は周りをグーグルで見つけましたが、それを見つけることができませんでした。あなたは命の恩人です! – user4595737

+0

大歓迎です。 – bernie

+1

今はキーワードリストを確認してから、テーブルとカラムに名前を付けるべきではないことを考えてみてください。それはあなたが使用したい用語であるときに迷惑になることがありますが、それを参照するたびにこのようにエスケープする必要がある競合よりもずっと面倒です。 – tadman

関連する問題