Oracle的分页查询是没有进行任何排序操作的,Oracle是顺序的从数据块中读取符合条件的数据返回到客户端. 而Oracle的排序算法不具有稳定性,也就是说,对于排序键值相等的数据,这种算法完成排序后,不能保证这些键值相等的数据保持排序前的顺序. 解决办法就是在排序的最后一个字段后面加上主键或者ROWID的排序即可解决该问题.…
cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html   cassandra的索引查询和排序 cassandra的查询虽然很弱,但是它也是支持索引和排序的,当然是简陋的查询,这一切都是为了追求性能的代价,所以要使用cassandra,你不能希望它完全适用你的逻辑,而是把你的逻辑设计的更适合cassandra. 第一:索引查询cassandra是支持创建二级索引的,索引可以创建在除了第一个主键之外所有的列上,当然有些类型除外,例…
一. 非主键关联,我们进行外键关联时,通常使用的是主键,但有时候需要使用到其他列时可以通过以下方法设置: 注解中:@JoinColumn(name="city", referencedColumnName="CITY_Name") 其中name属性为当前实体的属性,referencedColumnName属性指定要关联的列 映射文件中: 在N方的<many-to-one>节点中设置一下property-ref属性来指定列,这样就可不通过主键来关联 注意:…
前言: 1,事实上我是不使用外键的,所以本文只介绍主键 正文: (1)创建表的同时创建主键约束 create table STUDENT ( ID int , NAME varchar(8), AGE int, constraint KEY_NAME primary key(ID)); (2)删除表中已有的主键约束 alter table STUDENT drop constraint KEY_NAME ; (3)向表中添加主键约束 alter table STUDENT add constra…
背景:最近线上经常抛出mysql的一个Deadlock,细细查来,长了知识! 分析:错误日志如下: 21:02:02.563 ERROR dao.CommonDao        [pool-15-thread-19] [jbc.trade.qunar.com] [703c9ddbe4b143609035365ca46bff35] - db error , tableId=jbc.trade.qunar.com, sql=update i_pay_record set checktime = n…
转自:https://www.cnblogs.com/CoffeeHome/archive/2014/06/04/3767501.html 这里powerdesigner连接的数据库是以mysql为例子,连接其他数据库时操作也基本类似 1.设置主键为自增字段 双击要设置的表,选择“Columns”标签,双击主键字段,在弹出的新窗口的General标签最下方,勾选Identiry即可 2.设置非主键为唯一键,并作为表的外键 2.1.双击要设置的表,选择“keys”标签,点击“Iinsert a r…
ThinkPHP关联模型默认是主键外键关联 官方并没有提供相关文档 如何实现非主键与非主键间之间的关联 <?php namespace Admin\Model; use Think\Model\RelationModel; class PromoterModel extends RelationModel { protected $_link = array( 'Order' => array( 'mapping_type' => self::HAS_ONE, 'class_name'…
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分析 1.前置条件: 本次是基于小数据量,且数据块在一个页中的最理想情况进行分析,可能无具体的实际意义,但是可以借鉴到各种复杂条件下,因为原理是相同的,知小见大,见微知著! 打开语句分析并确认是否已经打开 Java代码   mysql> set profiling=1; Query OK, 0 row…
一直以来,用hibernate做多对一时,关联的都是主键,今天,同事设计的表,关联的却不是主键,这下麻烦了,hibernate的many-to-one默认关联的都是主键,原来,hibernate提供了非主键的关联,即只要加一个property-ref即可,如: <many-to-one name="dept" class="Dept" property-ref="dept_no"> <column name="dept…
测试结果为:count(*)和count(1)基本相等,count(非主键字段)最耗性能 -- 数据量 708254select count(*) from tmp_test1;-- avg 0.2240.229  0.2190.2270.2220.2150.2240.2250.2210.2400.219 select count(1) from tmp_test1;-- avg 0.2260.2300.2170.2170.2330.2250.2200.2350.2320.2330.219 se…
原文链接:https://blog.csdn.net/RuobaiMEN/article/details/79794199 MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候: 如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值: 也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填: 具体: 1.创建数据库 create table if not exists userInfo ( id int PRIM…
--oracle删除数据库表(无主键)中重复的记录 1,  CREATE TABLE newtable as SELECT distinct * FROM T_SYSTEM_MENU_PRIV; 2,  drop table T_SYSTEM_MENU_PRIV; 3, ALTER TABLE newtable rename to T_SYSTEM_MENU_PRIV;…
1.新建table CREATE TABLE ysb_log( id ) primary key not null , tbdate ) NULL, tb_time ) NOT NULL, tblog ) NOT NULL, tbreor ) null, bs ) NOT NULL ); 在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方 2. 创建自增的序列号 create sequence S_ysb_log minvalue maxv…
面试过好多人,包括自己也属于这么一个情况: 遇到问题直接去网上查,一般都可以查到解决方案.其中也包括一些基本的面试资料的答案. 其实有很多答案也都是正确的,但是还是存在一些压根就是胡乱抄来的答案,也不经过验证就直接贴在自己博客上 简直是害人害己,这开发工程师的圈子大了真是什么偷懒的都有.杜绝这一现象从我做起吧.以前写的代码很少有返回主键值的,都是记录生成记录的条数,所以我也是第一次做,特此记录 今天说下 oracle 能像mysql 和 sql server 一样返回主键: 1:创建你的表,然后…
目录 一.项目新建表.主键.索引注意事项 二.举例说明建表.主建.索引的操作方法 2.1 设定需求如下 2.1.1 查询数据库有哪些表空间 2.1.2 本文档假设数据库有这两个业务用户的表空间 2.2 普通表操作方法 2.2.1 新建普通表示例 2.2.2 普通表建立主建示例 2.2.3 普通表建立索引示例 2.3 分区表操作方法 2.3.1 新建分区表示例 2.3.2 分区表建立主建示例 2.3.3 分区表建立索引示例 2.3.4 分区表添加一个分区 2.3.5 分区表删除一个分区 三.表.主…
注意:Oracle导出建表语句不会导出触发器及自增索引 第一步:创建一张表 create table member( memberId number primary key, --主键.自增长 memberMail varchar2() not null, memberName varchar2() not null, memberPassword varchar2() ); 第二步:建立自定义的sequence CREATE SEQUENCE emp_sequence INCREMENT BY…
环境:Oracle 11.2.0.3 需求:生产一张表由于前期设计不当,没有主键.现需要添加主键,数据量很大,想并行建立. 1.直接添加,提示ora-3001:未实施的功能;只能单线程建立主键 SQL> alter table t add constraint pk_t primary key (object_id) using index online parallel 2;   alter table t add constraint pk_t primary key (object_id)…
接触oracle没多久,在建表的时候发现还不会如何设置主键自动增长.和mysql的设置为AUTO_INCREMENT属性相比,要复杂很多,所以现在记录起来. 我使用的是序列+触发器的方式. 现在已经创建好一个tbl_dept表,比较简单就两个字段.建表语句如下: -- Create table create table TBL_DEPT ( dept_id INTEGER not null, dept_name ) not null ) tablespace SYSTEM pctfree pct…
创建数据库 CREATE TABLE STUDENT(ID NUMBER PRIMARY KEY, NAME VARCHAR(200) NOT NULL, SEX VARCHAR(200), CREATE_DATE DATE); 指定表名注释 COMMENT ON TABLE STUDENT IS '学生表'; 指定列注释 COMMENT ON COLUMN STUDENT.ID IS '学生ID'; COMMENT ON COLUMN STUDENT.NAME IS '学生姓名'; COMME…
mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长.   如下: CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL ); 结果如下:   如果把col1列设为键,就可以创建自增. CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL, key(col1) ); 结果如下:   如果我们把id设为主键,仍然可以创建成功. CREATE TABLE t2…
 在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键.MySql中可以使用"auto_increment"即可.而oralce实现该效果需要使用序列配合触发器使用. 下面是一个具体实例: 1.创建数据库表: create table employee (   EID      INTEGER,   NAME     varchar2(…
--建表 create table book( book_id number(10), book_name varchar2(20), book_price number(10,2), book_author varchar2(20), book_publish_time date, book_introduction varchar2(100) ); --设置主键 constraint :约束 alter table book add constraint PK_ID primary key…
现在有两张表:一张t_s_user用户表和t_s_user_serial_number用户序号表 CREATE TABLE `t_s_user` ( `id` ) NOT NULL, `email` ) DEFAULT NULL, `mobilePhone` ) DEFAULT NULL, `officePhone` ) DEFAULT NULL, `signatureFile` ) DEFAULT NULL, `update_name` ) DEFAULT NULL COMMENT '修改人'…
最近做一个spring版本3.0.4的老项目功能,应用场景要用到插入oracle表后返回主键ID拿来和其他表关联. 用oralce的可以一直用这种处理方式,高兼容低,搜索网上的资料都不能和这个Spring版本兼容. public long insertOraGetId(final QuetInvtHeadVO headVO) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedStat…
1>> idea功能简单,最大化的实现傻瓜式操作,不需要像eclipse一样手敲代码,尤其是在创建主键多个或者主键映射时. 2>> (1).首先,idea创建复合主键映射时,需要先从数据库建表 (2).idea直接根据数据库中的表创建pojo类,两个xml配置文件. 不过,复合主键映射的hbm.xml配置文件及其pojo类与单一的主键表形成的这两样东西不一样. 首先,配置文件是这样色的: 其次要产生两个pojo类,一个是主键映射类: 一个是普通pojo类: *****首先这两个类都…
唠叨几句:几年前的知识忘却了,整理一下笔记,提供一下方便 1.创建数据库表 设置主键 create table users( userid number(10) primary key, /*主键,自动增加*/ username varchar2(20) ); 附  删除表:drop table users; 2.创建序列自增 CREATE SEQUENCE user_Sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVAL…
一.在表student中添加主键sno…
员工表如下,先将id设置主键: 现在将"员工id"设置唯一约束: 1,切换到"Keys",发现已经存在一个Key1,这个是刚刚新增主键id.在Key1下发空行出,点击会新增一个Key2: 2,双击Key2,在Constraint name输入唯一约束的名字,一般命名方式:UNQ_表名_字段名 3,切换到Columns,选择员工id字段,点击OK: 4,这一步很关键:切换到MySQL,选择Unique key(如果不选择此项,员工id会和id一起成为联合主键) 生成后…
select r.TABLE_NAME from USER_CONSTRAINTS p, USER_CONSTRAINTS r where p.TABLE_NAME = 'IAM_AUDIT_FINDING' and r.CONSTRAINT_TYPE = 'R' and p.CONSTRAINT_NAME = r.R_CONSTRAINT_NAME 黄色表:主键所在表 USER_CONSTRAINTS :记录了当前用户所有表之间的约束关系 CONSTRAINT_TYPE:约束类型 R:完整约束…
今天遇到一个问题: 要创建一张表,其中我想将ip和date这两列作为一个复合主键,可以通过如下语句修改表结构: alter table tb_name add primary key (字段1,字段2,字段3); 但是这样做会报错,原因是我在最开始创建表的时候已经将id作为主键了,因此要先取消id的主键(取消之前要先将id的自增去掉,否则无法取消他的主键). 此时这张表已经将ip和date设置为复合主键,但我仍然想将ip设为主键,此时就会报错: emmm 大概意思就是只有key能设置自增,但是这…