SQL脚本规范

7.5 SQL脚本

  • 去除^M符号:Windows系统中,每行的结尾是“\r”;Mac系统里,每行的结尾是“\r”;Unix/Linux系统里,每行的结尾是换行CR,即“

    ”。因此,确保在不同系统间转移文件时,需去除^M符号。

  • 分隔符设置:对于存储过程或触发器,升级脚本里应该正确设置分隔符(DELIMITER)

  • 函数要求:确认函数为DETERMINISTIC

  • 引擎与字符集:无特殊需求时,使用InnoDB引擎utf8字符集

  • 回滚与重复执行:升级脚本应便于回滚且可重复执行。

  • 注释有效性:确保注释有效。MySQL支持“--”、“#”或“/**/”注释方式,建议统一使用“#”。

  • 表结构变更:将一个表的结构变更合并为一条SQL实现。

  • 文件编码:SQL文件必须为UTF-8无BOM格式。可以用file命令确认编码,例如:file upgrade.sql

  • 文件转换工具:建议使用encaiconv等命令批量转换文件。示例:iconv -f gbk -t utf-8 aaa.txt > bbb.txt。Notepad++也提供了编码转换功能。