1

MySqlの特定のテーブルでINSERTINTOが失敗する原因を特定できません。私はそれらを他のテーブルに管理することができます。テーブルは次のようになります。

CREATE TABLE IF NOT EXISTS `Match` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `match_no` int(11) NOT NULL,
  `season` int(11) NOT NULL,
  `hometeam` int(11) NOT NULL,
  `awayteam` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `match_no` (`match_no`),
  KEY `season` (`season`),
  KEY `hometeam` (`hometeam`),
  KEY `awayteam` (`awayteam`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

そしてコマンドは

INSERT INTO Match (`match_no`, `season`, `hometeam`, `awaytem`) VALUES (1, 1, 2, 3)

私が得るのは:

1064-SQL構文にエラーがあります。match_no1行目の「Match( 、、、、)VALUES(1、1、2、3)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してくださいseasonhometeamawaytem

私はWebからのマニュアルと半ダースの例をチェックし、MySql固有の奇妙な点がある場合に備えて、構文にあらゆる種類の変更を加えてみましたが、何も機能していないようです。

4

3 に答える 3

5

に変更awaytemしてawayteam、それがどのように行われるかを確認し、テーブルとして「Match」を使用します。これmatchは予約語です。

于 2010-04-18T15:26:33.483 に答える
4

Matchreserved単語ですMySQL

MySQLの予約語のリストは次のとおりです

一致を次のようにバックティックで囲みます。

INSERT INTO `Match` .........

また、Paxが指摘したように、列名のスペルを間違えました。

于 2010-04-18T15:26:20.793 に答える
2

一致は逆の言葉
なので、

INSERT INTO `Match`

フィールド名に使用したのと同じバックティックに注意してください。
これらは装飾用ではありません。

于 2010-04-18T15:28:22.497 に答える