|
3 weeks ago | |
---|---|---|
.. | ||
19-10 | 4 weeks ago | |
19-11 | 4 weeks ago | |
19-12 | 4 weeks ago | |
20-01 | 4 weeks ago | |
20-02 | 4 weeks ago | |
20-03 | 4 weeks ago | |
20-04 | 4 weeks ago | |
20-05 | 4 weeks ago | |
20-06 | 4 weeks ago | |
20-07 | 4 weeks ago | |
20-08 | 4 weeks ago | |
20-09 | 4 weeks ago | |
20-10 | 4 weeks ago | |
20-11 | 4 weeks ago | |
20-12 | 4 weeks ago | |
21-01 | 4 weeks ago | |
21-02 | 4 weeks ago | |
21-03 | 4 weeks ago | |
21-04 | 4 weeks ago | |
21-05 | 4 weeks ago | |
21-06 | 4 weeks ago | |
21-07 | 4 weeks ago | |
db_tags | 4 weeks ago | |
README.md | 4 weeks ago | |
yzygame.sql | 3 weeks ago |
huangyongxing
2020-07-23
特别注意:
一般SQL脚本,后续部署到正式服机器,会按顺序执行
为便于统一版本管理和对比差异,要求SQL内容提交到不同分支时,采用原始的日期文件名,不要重新命名。部分提交时,脚本内容应处于文件中相对应的位置(不要一边在文件头部,一边在文件尾部等)
DROP TABLE IF EXISTS `example`;
CREATA TABLE `example` (
...
) ...;
CREATE TABLE `example` (
...
) ...;
理由:这是由于运维那边曾经发生过脚本错误或操作失误,会导入历史SQL。在这种情况下,如果有DROP表的语句,就会把正式服玩家数据清除掉,导致需要回档处理。
其实基于这一原因,通常对数据做更新的操作不应该出现在SQL脚本中,应只保留表结构相关语句。 但是事实上,有时候不得不更重建表结构或有一些重要的数据修正操作,这类则按实际需要添加。运维那边也加强了验证,尽可能避免此类问题发生。
CREATE TABLE `guild_war_guild_rank` (
`rank` int(11) NOT NULL COMMENT '排名',
`guild_id` int(11) NOT NULL COMMENT '帮派ID',
`guild_name` varchar(50) NOT NULL COMMENT '帮派名字',
`room` tinyint(3) NOT NULL COMMENT '战区',
`score` int(11) NOT NULL COMMENT '积分',
PRIMARY KEY (`rank`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='帮派积分榜';
正式服上会执行这些SQL语句,如果遗漏分号,会导致正式服更新失败 其他可能影响SQL正常执行的情况同样要避免
-- 注释风格1 - 推荐风格(注意,行首两个-之后,有一个英文字符的空格)
# 注释风格2
SELECT `id` /* 注释风格3: 我是语句中间的注释 */ FROM `example` LIMIT 1;
其中,#号开头的注释以及SQL语句中间的注释/* */在项目中一般不使用
# 正确命名:
17-06/17-06-07.sql
# 错误命名:
17-6/17-6-7.sql
不要使用Windows的记事本直接编辑保存SQL脚本,记事本有几点问题:
使用其他编辑器的,注意设置工具使用正确的编码和换行符风格。
使用相同的文件名及文档中位置,便于对版本进行管理,检查和提取版本差异,排查错误操作等。