美文网首页
Oracle修改主键

Oracle修改主键

作者: 看看你的肥脸 | 来源:发表于2018-08-12 11:34 被阅读0次

1、Oracle在已经存在主键的表中插入复合主键的SQL语句

如已有一个表test_key,其中a1列为主键。

CREATE TABLE TEST_KEY(
    A1 VARCHAR2(3) NOT NULL,
    A2 VARCHAR2(3),
    B1 VARCHAR2(3),
    B2 VARCHAR2(3)
);
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1) using index;

现在要将a2,b1也增加到主键中与原有的a1一起组成复合主键。语句如下:

alter table TEST_KEY drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY add constraint PK_TEST_KEY primary key (A1, A2, B1) using index;

需要做的操作是先将现有表的主键删除,然后再加入新的复合主键。

2、标签data-*自定义属性值

在HTML5规范里增加了一个自定义data属性,这样可以方便的在在标签上存储和操作数据。
如当一个下拉框的值是由两个值组合而成。选择某个下拉框的值后,需要将值传到后台查数据,通常用一个value传到后台不好处理,可以使用如下的方法:

<select id="product">
    <option data-goodsName="p01" data-vsrsion="01" >商品A--version 1.0</option>
    <option data-goodsName="p02" data-vsrsion="02">商品B--version 2.0</option>
    <option data-goodsName="p03" data-vsrsion="03">商品C--version 3.0</option>
</select>

获取当前选中的下拉框的值(jQuery写法):

var options=$("#productoption:selected");    //获取选中的项
var goodsName = options.data("goodName");    //拿到商品名
var vsrsion = option.data("vsrsion");        //拿到商品版本
你还可以在"data-*" 属性里使用json语法,例如,如果你写出下面的html:
<div id="test-json" data-test='{"game":"on"}'></div>

你可以通过js直接访问这个数据,通过json的key值,你能得到相应的value:

var gameStatus= jQuery("#test-json").data('test').game;
console.log(gameStatus);

你也可以通过.data(key,value)方法直接给"data-" 属性赋值。一个重要的你要注意的事情是,这些"data-" 属性应该和它所在的元素有一定的关联,不要把它当成存放任意东西的存储工具。
通过支持html5的浏览器中的js代码也可以获取相应的值,例如:

<div data-author="david" data-time="2011-06-20"  
          data-comment-num="10"  data-category="javascript">
....
</div>

获取js代码

var post = document.getElementsByTagName('div')[0];
post.dataset; // DOMStringMap
post.dataset.commentNum; // 10

需要注意的是,data-之后的以连字符分割的多个单词组成的属性,获取的时候使用驼峰风格。

补充:尽管"data-*" 是HTML5才出现的属性,但jquery是通用的,所以,在非HTML5的页面或浏览器里,你仍然可以使用.data(obj)方法来操作"data-" 数据。

根据data属性值查找对应标签
var curDiv = $('#main').find('div[data-url="11"]');
curDiv.css('', '');   // 去操作

上面代码的意思是,获取id="mian"的标签下的div中属性[data-url="11"]的标签,然后进行相关操作。

3、Highchar.js插件提示框千分位显示为空格而不是逗号

有两种解决方法
(一)修改js文件,关于千分位的设置:thousandsSep: String 一千的分隔符

在highcharts.js 中找到 thousandsSep位置,把"" 改为 ","

这种方法虽然能解决问题,但是修改js后,在某些情况下js会报错导致无法使用。(使用的js版本为:Highcharts JS v4.2.1 (2015-12-21)
(二)设置针对所有图表有效的全局配置(推荐方法
官方API

Highcharts.setOptions({
         lang:{
             thousandsSep:",",
         }
});

4、MyBatis 判断条件为等于的问题

先看一个实例
下面的语句是MyBatis的if判断条件

<if test="name != null and name == 'BAK' ">
     name=#{name}
<if>

但是写成上面的样子会报错,MyBatis是使用的OGNL表达式来进行解析的,需要改成一下形式(test里面 应该为单引号套双引号):

<if test= 'name != null and name == "BAK" '>
     name=#{name}
<if>

另外还有一种写法就是:

<if test="name != null and name == 'BAK'.toString() ">
     name=#{name}
<if>

相关文章

  • Oracle修改主键

    1、Oracle在已经存在主键的表中插入复合主键的SQL语句 如已有一个表test_key,其中a1列为主键。 现...

  • 第一次商讨

    1. 数据库 Mysql Oracle 主键,Oracle 用Sequence生成主键,主键唯一,各表共用一个自增...

  • SQL基础6:sqlserver、oracle 如何添加主键、索

    一、sqlserver 表已创建好,往表中添加主键 删除主键 二、oracle 添加主键 删除主键

  • Kudu局限笔记

    结构局限 主键 主键不可修改,如要修改需重新建表 主键必须位于表结构的第一列 主键不可修改数据内容,若要修改必须删...

  • 2018-08-30-Oracle学习第四天

    1、-- Sequence 序列 -- 如果我们在表中设置了主键,序列可以让主键自动增长。 -- 在 Oracle...

  • Oracle基础

    Oracle 回顾 键保留表 : 举例: A表:id是主键, name, pid外键 B表:id主键 name...

  • 动态修改字段信息

    修改字段类型、属性: 修改字段名称: 添加主键: 删除主键: 添加唯一: 删除唯一: 修改表名称:

  • SQL基础3:ORACLE、sqlserver、DB2、mysq

    目录:一、ORACLE二、sqlserver三、DB2四、mysql五、主键定义及作用 一、ORACLE 1、创建...

  • Kudu在使用过程中的各种限制

    主键 表创建后,主键不能修改。必须删除重建表指定新的主键。 主键列必须在非主键列之前 主键列的值不能使用UPDAT...

  • oracle主键自增

    创建序列语法: 创建案例: 创建sequence 使用触发器实现ID递增 创建序列

网友评论

      本文标题:Oracle修改主键

      本文链接:https://www.haomeiwen.com/subject/dwpbvftx.html