数据库
藏不戈
纸上得来终觉浅, 绝知此事要躬行.
展开
-
分布式事务方案整理
分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency)、可用性(Availablility)和分区容错(Partition Tolerance)三个特性是一件不可能的事情。 CAP理论告诉架构师不要妄想设计出同时满足三者的系统,应该有所取舍,设计出适合业务的系统 方案一. 2PC(两阶段提交协议) 基于数据库XA协议的方式, java有Automikos框架支持,可以实现事务强一致性, 但性能低下。 毕竟鱼与熊掌不可兼得。尽量避免分布式事务, 尽量将非核心事务做成异步原创 2022-02-23 22:37:45 · 211 阅读 · 0 评论 -
mysql timestamp 时间类型 数据为0000-00-00 00:00:00,到时查询sql异常问题
问题复现 设置mysql timestamp 时间类型支持0000-00-00 00:00:00数据 set sql_mode=(select replace(@@sql_mode,'NO_ZERO_IN_DATE,NO_ZERO_DATE','')); 报错 org.springframework.dao.TransientDataAccessResourceException: Error attempting to get column 'birthday' from result set. .原创 2021-12-29 22:33:42 · 1017 阅读 · 0 评论 -
pgsql 使用 group_concat
pgsql 使用 group_concat pgsql没有group_concat函数, 可以使用array_agg实现 返回类型是返回的类型是Array 使用demo array_to_string(array_agg(t.cname),',')原创 2021-07-29 16:04:29 · 9145 阅读 · 1 评论 -
plsql中函数调用java
1. 在plsql中先写一个函数 create or replace function test_create_id return number is language java name 'GeneratorUtil.getId() return long' ; `` #### 2. 在plsql中选择java resource定义一个java类 create or replac...原创 2019-06-14 13:40:05 · 3128 阅读 · 0 评论 -
mybatis selectKey 标签
1. 插入返回主键 <!-- 跟普通的insert没有什么不同的地方 --> <insert id="insert" parameterType="com.soft.mybatis.model.Customer"> <!-- 1 insert语句需要写id字段,并且 values里面也不能省略 2 ...原创 2019-01-08 15:16:48 · 274 阅读 · 1 评论 -
oracle函数使用
1. 数据类型转化 select round(1.00, 2) from dual; select trunc(1.0, 2) from dual; select CAST(12 AS NUMBER (10, 2) ) as aa from dual ;原创 2018-11-15 10:39:29 · 237 阅读 · 0 评论 -
sql异常
报错代码: Caused by: java.sql.SQLException: ORA-01000: 超出打开游标的最大数 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) at o...原创 2018-11-02 11:59:00 · 709 阅读 · 0 评论 -
mysql语法使用
mysql本身不像oracle那样使用 rownum 来显示行号的功能.但是可以使用设置变量的方式来实现这一功能. mysql使用 @ 定义用户变量, @@ 定义系统变量. 查询显示的具体代码 set @rowno := 0; #定义一个变量,变量名随意 SELECT u.*, (@rowno := @rowno +1) as rowno from user u # 使用的时候动态赋值....原创 2018-03-27 10:43:07 · 7333 阅读 · 0 评论 -
mysql数据迁移
mysql数据迁移的两中方案1.导出sql文件 2.简单粗暴,关闭服务,直接复制mysql的data文件,此方法需要注意的地方:原始data文件里的ib_logfile , 和 .err文件不要复制原创 2017-10-09 10:44:45 · 199 阅读 · 0 评论 -
关于oracle数据库分区表
对于分区表的理解1. 了解一下表分区 和 分区表的区别表分区是一种数据库的优化思想,而分区表是表分区的一种体现. 分区表一般在数据库数据巨大时使用,如一张表的数据已经达到了一个G.2. 分区表分为两种a. 垂直分区 : 将一张表的所有字段拆分成多个较少的字段的表以减少单表的数据量来提升速度. b. 水平分区 : 就是将表的条数按照一定的规则来区分成多个表,一般按时间来区分.3. 按时间创建分转载 2017-09-28 17:53:12 · 353 阅读 · 0 评论 -
decode 和 case when 的用法
decode 属于 case when 的精简版 只有oracle支持 使用格式: decode( columnName , if_vul,then_val,.....,else_val) 说明:columnName的值与if_val匹配,相同则显示then_val,其中if_val,then_val可多个,都不符合if_val 则显示else_val case when 使用格式 c原创 2017-07-25 14:05:16 · 626 阅读 · 0 评论 -
over oracle分析函数的用法
over over 分析函数和聚合函数的区别: 聚合函数只返回一条数据,而分析函数返回的是多条数据 1.rank() over(partiton by XX orader by ZZ desc)(分组排序序号) 2.sum(sal) over (partition by deptno) 按部门求薪酬总和 3.ROW_NUMBER() OVER(partition by col1 ...原创 2017-08-16 16:57:36 · 468 阅读 · 0 评论 -
oracle的递归函数
### connect by 语法: select * from tableName start with 条件A -- 开始递归的根节点,可多个条件 connect by prior 条件B -- prior 决定查询的索引顺序 where 条件 C ## 开始:创建数据库 ``` create table TEST_DG ( id VARC原创 2017-08-16 15:53:37 · 5573 阅读 · 0 评论 -
关于oracle中 with xx as 的用法
提高oracle的查询性能之with clause 语句原创 2017-05-11 18:35:04 · 3408 阅读 · 0 评论