一尘不染

MySQL表名称中的特殊字符

mysql

我创建了一个表,如下所示:

CREATE TABLE IF NOT EXISTS 'e!' (
`aa` int(11) unsigned NOT NULL auto_increment,
`showName` TEXT NOT NULL default '',
`startDateTime` DATETIME NOT NULL default '',
`endDateTime` DATETIME NOT NULL default '',
PRIMARY KEY  (`aa`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8

然后尝试插入查询:

INSERT INTO e! (showname, startDateTime, endDateTime) VALUES('E! News ', '2012-05-03 19:00:00', '2012-05-03 20:00:00')

而且由于!表名称中的错误,我假设这!是mysql中的特殊字符。我试图对其进行转义,但查询仍然失败。

所以,我能有特殊字符,如!&在表名?如果是,那么我可能必须以某种方式对其进行编码?

谢谢。


阅读 1528

收藏
2020-05-17

共1个答案

一尘不染

用反引号引用您的含糊不清或“特殊”表名:

INSERT INTO `e!` ...

或者更好的是,不要在表名中使用特殊字符以避免此类问题。

2020-05-17