数据库脚本开发中应注意的事项:
1、存储过程中,变量的定义应与赋值给该变量的表的字段定义相同,避免数据在库中正常,而在脚本执行过程中被截断的问题
2、数据状态的应该尽量从原始数据中获取,而非另设字段记录,避免数据不一致问题的出现
3、mysql不同环境下大小写问题
1)在Linux环境下
a、mysql 5.5 数据库表名区分大小写,其他不区分
b、mysql5.7 数据库表名强制保存为小写,字段大小写保留,但数据库操作均不区分大小写
2)在Windows环境下,与SQL Server完全相同,不区分大小写
规避此类问题的方法:全部小写,遵循阿里数据库建表规约
4、对于数据库的insert或update操作,注意可能存在的并发问题:修改数据的操作基于之前数据的状态,需满足某种条件(如交易系统的买入操作需在现金足够时才能成功),则存在并发问题,可以采用乐观锁,通过记录时间戳的解决
5、mysql中,primary key与unique的区别:
a、primary key一张表只能一个,unique可以多个,
b、primary key每列不能为null,unique可以
6、mysql中,primary key与unique会自动创建主键索引和唯一索引(其实,mysql创建主键索引和唯一索引语句,与添加对应约束相同)
7、数据库的优化时,索引的建立是针对某一查询语句
8、当添加的字段名为保留字时,mysql 可使用(``)(非单引号),sql server 可使用([])
9、mysql的配置文件 my.cnf 路径为/etc/、/etc/mysql/,两者同时存在时,后者覆盖前者
10、在使用mysql游标时,游标须定义在存储过程中,不可单独执行,另外,
a、所有声明语句须放在游标定义之前,否则报错(Error Code: 1337,Variable or condition declaration after cursor or handler declaration)
b、所有执行语句须放在游标定义之后,否则会报(Error Code: 1064,You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for ...)