update

mysql 语句将指定列的浮点数转化为整数:

半城伤御伤魂 提交于 2019-12-20 11:46:42
mysql 语句将指定列的浮点数转化为整数: 例子: SELECT tableName, COUNT(*) FROM fieldName GROUP BY fieldName UPDATE tableName SET fieldName = fieldName/1000 WHERE fieldName >1000 语句将指定列的浮点数转化为整数的语句: update tableName set fieldName = round(fieldName,0) update tableName set fieldName = cast(fieldName as decimal(10,0)) 来源: CSDN 作者: 零点零一 链接: https://blog.csdn.net/thanklife/article/details/103627072

update 追加某个字段的内容

江枫思渺然 提交于 2019-12-20 06:57:34
字段后面添加内容 update 表名 set 字段名 = concat ( 字段名 , "string" ) UPDATE daysky SET `jianyao` = CONCAT ( `jianyao` , ' 添加的内容' ) WHERE id = 1 update 表名 set 字段名 = concat ( "string" ,字段名 ) UPDATE daysky SET `jianyao` = CONCAT ( ' 添加的内容' , `jianyao` ) WHERE id = 1 来源: CSDN 作者: 执念、很无奈 链接: https://blog.csdn.net/qq_41606390/article/details/103613677

mvcc机制中repeatableread的一些问题

杀马特。学长 韩版系。学妹 提交于 2019-12-20 04:35:04
2个会话session,分别开启2个事务。 第一个select后等待,第二个会话事务insert了一条记录laoqi 测试,如果第一个会话事务这时候update的是id=1的数据,则下个select还是只是查的三四五六的数据,三的数据为更改后的数据。如果update的是他非repeatable的三四五六的新的qi的数据则下次select的是三四五六七。 原来我一直以为只要在事务内insert/update/delete任何条件都会同步成最新数据的快照下次select都是最新的快照数据,看来不对。只有操作到了的新数据才会被同步,下个select会带回来。 MVCC事务版本号不同语句产生的原则 INSERT InnoDB为新插入的每一行保存当前系统版本号作为版本号. DELETE(delete) InnoDB会为删除的每一行保存当前系统的版本号(事务的ID)作为删除标识. 根据update的更新原则:会生成新的一行,并在原来要修改的列的删除时间列上添加本事务ID,得到表如下: id name 创建时间(事务ID) 删除时间(事务ID) 1 yang 1 4 2 long 1 5 3 fei 1 undefined 4 tian 3 undefined 2 Long 5 undefined SELECT InnoDB会根据以下两个条件检查每行记录: a

MySQL触发器trigger的使用

瘦欲@ 提交于 2019-12-19 22:20:17
Q:什么是触发器? A: 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。 触发器的特性: 1、有begin end体,begin end;之间的语句可以写的简单或者复杂 2、什么条件会触发:I、D、U 3、什么时候触发:在增删改前或者后 4、触发频率:针对每一行执行 5、触发器定义在表上,附着在表上。 也就是由事件来触发某个操作,事件包括INSERT语句,UPDATE语句和DELETE语句;可以协助应用在数据库端确保数据的完整性。 注意:cannot associate a trigger with a TEMPORARY table or a view. !!尽量少使用触发器,不建议使用。 假设触发器触发每次执行1s,insert table 500条数据,那么就需要触发500次触发器,光是触发器执行的时间就花费了500s,而insert 500条数据一共是1s,那么这个insert的效率就非常低了。因此我们特别需要注意的一点是触发器的begin end;之间的语句的执行效率一定要高,资源消耗要小。 触发器尽量少的使用,因为不管如何,它还是很消耗资源,如果使用的话要谨慎的使用,确定它是非常高效的:触发器是针对每一行的;对增删改非常频繁的表上切记不要使用触发器,因为它会非常消耗资源。 一、创建触发器 CREATE [DEFINER = {

关于mongodb基础的命令

为君一笑 提交于 2019-12-19 15:55:42
banji----数据库 class---集合 1、查看所在的数据库 db 2、查看所有的数据库 show dbs 3、创建数据库 use banji #查看所有的数据库show dbs,创建的数据库(banji)不在列表中。要显示数据库,需要至少插入一个文档,空的数据库是不显示出来的。 #db.banji.insert({"name":"banji"}),现在能看到数据库banji 4、删除数据库 注意大小写 db.dropDtabase() #这将删除当前所选数据库。 5、显示所有的集合(相当于数据库中的表) show collections 6、创建集合 db.createCollection("class",{capped:true,autoIndesId:true,size:10240,max:1000}) 7、删除集合 db.class.drop() 8、插入文档 db.class.insert(document) #db.class.save(document)----也可以 document=({ title:'mongoDB jiaocheng', by:'菜鸟教程', urls:'www.runoob.com', likes:100 }); 9、更新文档 db.class.update( <where>, <set>, { upset:<boolean>,

使用case-when时需要注意一个点

ぃ、小莉子 提交于 2019-12-19 13:02:29
当时Mapper中就只有一段简单的update语句,如下: UPDATE 表1 a, 表2 b SET a.hzjy_flag = case b.HZJYBZ when '1' then '1' when '2' then 2 else '2' end, a.reference_price = b.CKJG WHERE a.market_no = b.JYSC AND a.report_code = b.ZQDM AND b.check_status = 'o' 执行该条语句报错:Data truncation:Truncated incorrect DOUBLE VALUE '', 本来以为是其中一个字段是decimal导致的,最后发现把这个字段去掉之后也会有这个问题 最后发现是因为when '2' then 2的时候没有加引号的原因导致的,啧啧啧,真的是.不能把一个数字赋给字符串 来源: CSDN 作者: jing1008-wang 链接: https://blog.csdn.net/sinat_36722750/article/details/103610681

Android,使用Group批量设置多个控件的可见性

假装没事ソ 提交于 2019-12-19 12:13:13
xml布局中使用 ...... <androidx.constraintlayout.widget.Group android:id="@+id/group_update_pwd" android:layout_width="0dp" android:layout_height="0dp" app:constraint_referenced_ids="editText_old_pwd,editText_new_pwd,editText_new_repwd,btn_update_pwd" android:visibility="invisible" /> java 设置为不可见 Group group = findViewById(R.id.group_set_pwd); group.setWillNotDraw(false); group.setVisibility(View.INVISIBLE); 设置为可见 group.setWillNotDraw(true); group.setVisibility(View.VISIBLE); 来源: CSDN 作者: Corio_chu 链接: https://blog.csdn.net/qq_38861828/article/details/103608703

Oracle的悲观锁和乐观锁

青春壹個敷衍的年華 提交于 2019-12-19 06:41:50
  为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。   数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢, 悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。   先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插入机制,在任何时间同一张表只会插1条数据,别的想插入的数据要等到这一条数据插完以后才能依次插入。带来的后果就是性能的降低,在多用户并发访问的时候,当对一张表进行频繁操作时,会发现响应效率很低,数据库经常处于一种假死状态。而Oracle用的是行级锁,只是对想锁定的数据才进行锁定,其余的数据不相干,所以在对Oracle表中并发插数据的时候,基本上不会有任何影响。 注:对于悲观锁是针对并发的可能性比较大,而一般在我们的应用中用乐观锁足以。   Oracle的悲观锁需要利用一条现有的连接,分成两种方式,从SQL语句的区别来看,就是一种是 for

乐观锁和悲观锁

牧云@^-^@ 提交于 2019-12-19 06:41:32
为了得到最大的性能,一般 数据库 都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。 先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插入机制,在任何时间同一张表只会插1条数据,别的想插入的数据要等到这一条数据插完以后才能依次插入。带来的后果就是性能的降低,在多用户并发访问的时候,当对一张表进行频繁操作时,会发现响应效率很低,数据库经常处于一种假死状态。而Oracle用的是行级锁,只是对想锁定的数据才进行锁定,其余的数据不相干,所以在对Oracle表中并发插数据的时候,基本上不会有任何影响。 注:对于悲观锁是针对并发的可能性比较大,而一般在我们的应用中用乐观锁足以。 Oracle的悲观锁需要利用一条现有的连接,分成两种方式,从 SQL 语句的区别来看,就是一种是for update

Oracle悲观锁和乐观锁

天涯浪子 提交于 2019-12-19 06:41:14
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据 肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲 突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。 先从悲观锁开始说。在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插入机制,在 任何时间同一张表只会插1条数据,别的想插入的数据要等到这一条数据插完以后才能依次插入。带来的后果就是性能的降低,在多用户并发访问的时候,当对一张 表进行频繁操作时,会发现响应效率很低,数据库经常处于一种假死状态。而Oracle用的是行级锁,只是对想锁定的数据才进行锁定,其余的数据不相干,所 以在对Oracle表中并发插数据的时候,基本上不会有任何影响。 注:对于悲观锁是针对并发的可能性比较大,而一般在我们的应用中用乐观锁足以。 Oracle的悲观锁需要利用一条现有的连接,分成两种方式,从SQL语句的区别来看,就是一种是for update