mysql的注释

时间:2023-03-10 05:08:41
mysql的注释

一直没怎么用过mysql数据库, 今天用mysqldump备份了一下表结构, 记录一下遇到的问题

1. mysqldump默认导出没有事务和存储过程, 如果想导出这些可以用 -E 和 -R[--routines      Dump stored routines (functions and procedures)]

2. mysqldump默认导出表中是带着触发器的, 不要触发器可以用--skip-triggers

3. 默认导出是连数据一块儿导出,不要数据可以用(-d, --no-data)

    mysqldump --host=${source_ip} --user=${user} --password=${passwd} \
--no-data --databases ${database} --table ${table} -R -E >/tmp/${table}.sql

4. 从本地导入数据

mysql --user=${user} --password=${passwd} --host=${mysql_ip}   ${database} --default-character-set=utf8 <<EOF
LOAD DATA LOCAL INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';

5. 从target服务器上导入数据

mysql --user=${user} --password=${passwd} --host="172.0.0.1"   ${database} --default-character-set=utf8 <<EOF
LOAD DATA INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';
数据库和数据在同一台服务器

6. mysql的注释

mysql的注释有4 种 :

“#”  : # 开头到行尾的都为注释,只能注释一行
  “-- ” (2个减号 一个空格) : -- 开头到行尾都为注释 , 只能注释一行
 “/*   xxx */"   :  可以注释多行,但是一定要闭合,不然出错
  ”/*!  数字    代码  */"  :  可以跨行注释,但是一定要闭合,不然出错。

其中 ,   ”/*!  数字    代码  */" 是有特殊含义的 
例如: /*!40101 SET NAMES gbk */;  代表的是  如果mysql 版本大于4.0.1.01  ,就执行后面的 set names gbk 这句代码。
这就有一个好处,这样就可以把mysql 特有的功能用这种注释,给注释掉,对于非mysql数据库可以正常运行,不需要修改,
而对于mysql 数据库,就可以利用这些特性。