由于新公司数据库使用 Oracle,我之前一直使用的是 MySQL,特在此记录一些 Oracle 数据库相关内容。
- MySQL 有自增主键,Oracle 使用序列实现 MySQL 主键自增功能。
- 【强制】序列名称以 SEQ_ 前缀开头,便于统一与维护
-- 获取当前序列
SELECT SEQ_ID.CURRVAL FROM DUAL
-- 获取下一个序列
SELECT SEQ_ID.NEXTVAL FROM DUAL
- Oracle saveOrUpdate sql 实现
MERGE INTO employees e
USING (SELECT * FROM hr_records WHERE start_date > ADD_MONTHS(SYSDATE, -1)) h
ON (e.id = h.emp_id)
WHEN MATCHED THEN
UPDATE SET e.address = h.address
WHEN NOT MATCHED THEN
INSERT (id, address)
VALUES (h.emp_id, h.address);