数据库脚本开发中应注意的事项

数据库脚本开发中应注意的事项:

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 ...)

原文地址:https://www.cnblogs.com/MattCheng/p/6840508.html