• 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语句无法执行。至于为什么使用小引号,而不使用单引号,笔者也不清楚了。可能怕单引号解析也

    会同样会出现错误吧。

  • 相关阅读:
    Js页面自动跳转
    关于express项目的创建与启动
    在采用vue-cli Post Get
    vue-cli 组件运用
    成员变量的初始化取值和权限修饰符
    面向对象
    java基础数据类型复习
    java包装类
    之前所学复习汇总
    对jdk+jre+jvm的简单了解
  • 原文地址:https://www.cnblogs.com/wannianma/p/3530487.html
Copyright © 2020-2023  润新知