zoukankan      html  css  js  c++  java
  • sql语句中的小引号问题

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

    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;

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

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

    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;

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

    会同样会出现错误吧。

  • 相关阅读:
    「考试」省选6
    「考试」省选5
    「考试」省选4
    「笔记」拉格朗日插值
    数学专测
    「笔记」$exlucas$
    「总结」$dp1$
    「总结」达哥数学专项
    「总结」筛法2
    「总结」莫反2
  • 原文地址:https://www.cnblogs.com/wannianma/p/3530487.html
Copyright © 2011-2022 走看看