首页 > 数据库技术 > 详细

sql语句中的小引号问题

时间:2014-01-23 06:14:51      阅读:455      评论:0      收藏:0      [点我收藏+]

用Navicat导出的SQL文件中看到如下语句:

bubuko.com,布布扣
DROP TABLE IF EXISTS `ls_about`;
CREATE TABLE `ls_about` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `title` varchar(1000) DEFAULT NULL,
  `type_id` tinyint(2) DEFAULT NULL,
  `author` varchar(16) DEFAULT NULL,
  `pics` varchar(50) DEFAULT NULL,
  `content` longtext,
  `times` datetime DEFAULT NULL,
  `copyfrom` varchar(50) DEFAULT NULL,
  `description` varchar(550) DEFAULT NULL,
  `keywords_title` varchar(200) DEFAULT NULL,
  `keywords` varchar(100) DEFAULT NULL,
  `posids` int(1) DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `type` (`type_id`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
bubuko.com,布布扣

但是自己敲入客户端时,总是提示语法错误。后来google一下,才知道‘ls_about‘外包含的不是单引号,而是小引号。

小引号就是数字键1左边的那个键打出来的字符 " ` "。使用小引号主要是为了与mysql系统函数重名,导致解析错误,如下例:

bubuko.com,布布扣
CREATE TABLE IF NOT EXISTS ls_conf(
  name varchar(32) NOT NULL,
  value int(10) NOT NULL,
  desc TEXT DEFAULT NULL,

  PRIMARY KEY (`name`)
)ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
bubuko.com,布布扣

如果不加小引号,客户端程序必定会解析desc为mysql内置命令,造成SQL语句无法执行。至于为什么使用小引号,而不使用单引号,笔者也不清楚了。可能怕单引号解析也

会同样会出现错误吧。

sql语句中的小引号问题

原文:http://www.cnblogs.com/wannianma/p/3530487.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!