关于数据表命名为mysql保留的时候的操作

今天操作数据表的时候,发现order数据表无法进行操作,必须加上反单引号才能进行操作,查了一下原因:

反引号是用来区别mysql关键字的,比如,如果你有一个表名叫select,你就必须写成`select`,因为select是mysql保留字。

反引号是加在数据库名、数据表名和数据表的字段名上面的

例子:

不加反单引号:

mysql> show create table order;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘order‘ at line 1

加了反单引号:

mysql> show create table `order`\G;
*************************** 1. row ***************************
       Table: order
Create Table: CREATE TABLE `order` (
  `oid` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘订单编号‘,
  `cid` int(11) NOT NULL,
  `pid` int(11) NOT NULL,
  `onum` int(11) NOT NULL,
  PRIMARY KEY (`oid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
1 row in set (0.00 sec)

反单引号在tab键上面

时间: 2024-11-13 08:56:01

关于数据表命名为mysql保留的时候的操作的相关文章

使用命令行将Excel数据表导入Mysql中的方法小结

从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间 为了提高效率,是时候指定一个数据导入的SOP了: 1.准备.txt文件 1.1 将要导入的数据(不含表头)从工作表复制.粘贴到一个新建的Excel数据表中(避免污染源数据) 1.2 粘贴时注意:使用右键paste as value选项,过滤掉源数据表中的多余格式(如,字体颜色.粗体等) 1.3 将新建的Ex

如何在升级数据表的同时保留原数据

一.问题 项目做到后期,或者项目版本升级时,有时不得不更新原来的数据库设计.比如有一张表,可能需要增加字段.修改字段等.在某些情况下,Alter TABLE命令不能完成这个任务,比如更换主键.这时只能用全新的设计替换掉原来的设计.但是,如果让新设计的表格中,包含原来的数据呢? 二.解决方案 其实很简单,分4步: 创建新表 将原表数据插入到新表中 删除原表 将新表重命名为原表名 三.实例 知名开源项目BlogEngine.NET就是这样做的!比如以下是它从2.0版本升级到2.5版本时,所使用的SQ

Oracle数据表创建、查询、约束等操作

1.创建表.删除表.复制表 create  table stuInfo    --创建学员信息表 ( stuNo char(6) not null stuName varchar(2) not nul, stuAge number(3,0) not null ) 新建一张表复制学员信息表则是:create table stuInfo2 as select * from stuInfo; 删除表:1.drop table 表    2.truncate  表: 2.对表结构的查询:desc 表名;

mysql 数据表读锁机制详解

为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制.一.概述MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁.MySQL这3种锁的特性可大致归纳如下:表级锁:开销小,加锁快:不会

mysql数据表增删改查

http://www.runoob.com/mysql/mysql-tutorial.html 一.MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name column_type); 以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl: CREATE TABLE IF NOT EXISTS `runoob_tbl`

3)-MySQL创建数据表

MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: create table table_name (column_name column_type); 以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl: create table if not exists `runoob_tbl`( `runoob_id` int unsigned auto_increment, `runoob

数据表的自身连接

有一个三级结构的数据表,自身连接分别查看分类的结构,包括 父类,子类 创建数据表: mysql> create table tdb_goods_type( -> type_id tinyint unsigned auto_increment primary key, -> type_name varchar(20) not null, -> parent_id tinyint not null -> ); 插入数据: INSERT INTO`tdb_goods_type` V

mysql更改已有数据表的字符集,保留原有数据内容

mysql更改已有数据表的字符集,保留原有数据内容     原文网址:http://blog.csdn.net/learn_2/article/details/6460370 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足需求需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改.字符集的修改不能直接通过"alter database character set *** " 或者 "alter table tablename chara

linux 通过scp 复制备份恢复mysql数据表

最近客户有个需求,小弟对于运维的东西也是半瓶醋,所以就果断的摸索了下.折磨了一个晚上终于算是搞定了.因为是两个不同的服务器,本来想用ftp,无奈小弟不是很熟悉,所以就用了scp,但是scp有个问题就是要输入密码才能复制,这下把小弟急坏了,那我这shell脚本咋办, 我的需求是我要每天定时导出三个表,然后通过scp复制到另外一台服务器上,再恢复这三个表的数据. 俗话说,家事找度娘,小弟就翻阅了度娘的衣柜,终于算是找到了件合身的衣服. 该文章链接是这个http://blog.csdn.net/xif