MySQL INSERT问题

时间:2011-03-20 21:05:22

标签: mysql sql insert

有谁知道这个查询有什么问题:

INSERT INTO match 
  (IDTeamHome, IDTeamGuest, Date) 
VALUES 
  ('15','16','20.03.2011 15:00')

IDTeamHome和IDTeamGuest是整数,Date是varchar。

4 个答案:

答案 0 :(得分:4)

编辑:有几个问题。

  1. “匹配”和“日期”are keywords in MySQL。你需要双引号或反引号,以便MySQL知道它们是表名或列名,例如
    INSERT INTO "match" (id1, id2, "date") VALUES ...

  2. 删除您插入的整数值周围的单引号 单引号用于字符串。 (OMG Ponies在评论中指出的并非严格必要)

  3. 如果可以避免,请不要将时间戳存储为VARCHAR。这将使查询变得更加困难,并使与您的桌子一起工作的任何其他人感到困惑。

答案 1 :(得分:0)

尝试使用`Date`或重命名此字段,因为Date是我认为的MySQL使用的单词。

删除整数的单引号。

答案 2 :(得分:0)

匹配是一个保留字。

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

重命名你的桌子或将其放在反引号(alt + 96)

我刚刚见过它。 :)

答案 3 :(得分:0)

团队的ID是Int,所以你不能使用单引号,因为那是引用。对于String值,如Alphabets,请使用以下格式:

insert into match(int,varchar(20),data)
Values(12,'teamname','2015-11-4');