规范
- 尽可能不使用单反引号(`),用于表名,字段名
- 判断条件中必须是布尔型的,否则增加判断条件转换为布尔型
- CONVERT函数的参数和mysql的相反,第一个参数是格式,第二个参数是值
CONVERT(123, DECIMAL(12, 2)) ==> CONVERT(DECIMAL(12, 2), 123)
- CONVERT不支持方法
CONVERT ( DATE_FORMAT( begin_time, '%k%i' ), SIGNED ) ==> CAST ( DATE_FORMAT( begin_time, '%k%i' ) AS INTEGER )
- 输出为map的Mapper中,用””包括别名
- GROUP BY中不能使用SELECT中生成的别名(执行顺序:from > on > where > group by > having > select > order by)
- group by中字段和select中的不是同一个表中的字段(statisticsOpenData),不全(LabMapper.selectSeatLab)
- 不支持UNSIGNED/SIGNED
- 自增长字段名大写处理(达蒙插入时无效列问题)
- 修改字段名和属性,必须分开,不能用ALTER TABLE CHANGE,可以是哦那个ALTER TABLE ALTER COLUMN和ALTER TABLE MODIFY
ALTER TABLE dev_rec change resv_rec_status resv_status varchar(30) int NULL DEFAULT 0; ==> ALTER TABLE dev_rec ALTER COLUMN resv_rec_status RENAME TO resv_status; ALTER TABLE dev_rec MODIFY resv_status int NULL DEFAULT 0;
- 慎用保留字作为字段或者表名, 比如top(new表中)
达蒙数据库操作
显示所有表
SELECT table_name FROM user_tables;
删除所有表
DECLARE table_name VARCHAR2(100); BEGIN FOR r IN (SELECT table_name FROM user_tables WHERE tablespace_name = 'UNIIC') LOOP EXECUTE IMMEDIATE 'DROP TABLE "' || r.table_name || '" CASCADE CONSTRAINTS'; END LOOP; END;
达蒙SQL问题
- Mybatis插入时,提示无效列名,自增长字段大小写问题
- 不能使用alter table drop index方式删除索引,只能通过drop index
- 不同通过create table时,内置创建索引,只能通过 create index
-
Flyway问题
- 数据库升级失败后,修改sql语句,删除flyway历史记录中的出错记录,重新运行程序
delete from "flyway_schema_history" where "version"='2.28'
- 语句中包含占位符,导致错误(No value provided for placeholder: ${0})
flyway.placeholder-replacement: false
IC中sql问题
- GROUP BY中和SELECT中的不匹配
LabMapper.getArea 少lab_kind
RoomMapper.list 少 rm.open_num
文档更新时间: 2025-03-14 14:48 作者:方杰