1

我正在使用 phpMyAdmin (3.5.7) 中的 SQL 窗口将行插入到 MySql 表中,但是语法检查器出现问题。它在 Windows Server 2003 上运行。

如果我单击“INSERT”按钮生成模板,然后在模板中改写值,就没有问题。但是我因为需要填充大量行,所以我使用 Excel 自动生成了 INSERT 语句,将它们粘贴到文本编辑器中,然后将它们粘贴到同一个 phpMyAdmin SQL 窗口中。结果令人费解……

下面的语句(使用 Excel/文本编辑器/复制和粘贴生成)给出了错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''timeslot' ('slot_no', 'slot_starttime') VALUES (3,'00:30')' 附近使用正确的语法

INSERT INTO 'timeslot' ('slot_no', 'slot_starttime') VALUES (2,'00:15')

但是下面的语句很好(它是通过单击 SQL 窗口上的 INSERT 按钮然后在模板中过度键入文本来构建的:

INSERT INTO `timeslot`(`slot_no`, `slot_starttime`) VALUES (2,'00:15')

我已直接从 phpMyAdmin 窗口将这两个语句复制并粘贴到这篇文章中。它们对我来说看起来几乎一样,所以我不明白为什么第一个失败了。

???

4

1 回答 1

3

如果你按照你说的直接粘贴了结果,就会出现语法错误。

在 MYSQL 中,您不能使用撇号将字段名或表名括起来。相反,您必须使用 BACK-QUOTE (在波浪号键上)

所以以下是错误的:

INSERT INTO 'timeslot' ('slot_no', 'slot_starttime') VALUES (2,'00:15')

以下是正确的:

INSERT INTO `timeslot` (`slot_no`, `slot_starttime`) VALUES (2,'00:15')

甚至以下是正确的(没有反引号):

INSERT INTO timeslot (slot_no, slot_starttime) VALUES (2,'00:15')

常见的单引号 (') 仅用于 SQL 语句中的 VALUES。

于 2013-03-07T10:21:57.830 回答