我想问下怎么在jsp下使用Update 实现修改密码

我想问下怎么在jsp下使用Update 实现修改密码,第1张

问题没问清楚,这么答?是要帮你改sql 语句,还是java中代码实现用户密码修改
你写的字符串连接是错的
String sql = "update users set password = password1 where xuehao ='”+ xuehao+“'";改成这样

由于hive数仓的特性,不容许数据进行修改,造成hive中的数据更新活着删除很困难的问题,自hive
011版本之后,hive也尝试在测试环境允许进行update和delte *** 作,但这些 *** 作还不成熟,不敢在生产环境放心使用,其中也有一样不足。
create
table
test_temp
(
id
string,
name
string,
age
string
)
comment
'临时表'
partitioned
by
(y
string,m
string,d
string)
row
format
delimited
fieldsterminated
by','
stored
as
textfile
create
table
test
(
id
string,
name
string,
age
string
)
comment
'最终表'
row
format
delimited
fieldsterminated
by','
stored
as
orcfile
11
初始化
1通过hive数据load的方式先把数据加载到test_temp表中(此处也可以通过sqoop进行数据抽取,不再详述)。
load
data
local
inpath
'/home/hadoop/atxt'
overwrite
intotable
test_temp
2通过hive
insert
overwrite的方式把临时表的数据加载到最终表test中。
insertintotable
test
select
id,name,age
from
test_temp

我试过update t A set r2=(select r2 from t B where Br2=Ar2) where r2=3 这样说有语法错误
这句话是错的
应该是这样:
update t set r2=(select r2 from t B,T A where Br2=Ar2)
where r2=3
但是我不明白你的意思Br2=Ar2??什么意思??
你HI我把

分类: 电脑/网络 >> 软件
问题描述:

我在ms-sql中有db-a库(有表aaa),db-b库(有表bbb),db-c库(有表ccc)

表aaa表bbb表ccc中都有id字段,三表中另外分别有(aaa,bbb,ccc)3个字段值要根据id保持一致,

当db-a库(有表aaa)的aaa字段中有一个记录修改能自动触发修改另两个库中表bbb表ccc中对应字段bbb,ccc值

===================================下面例子我看不懂
CREATE trigger [数据库Atr_user] on [user]

for update,insert,delete

as

alter table 数据库B[user] DISABLE TRIGGER [数据库Btr_user]

-----------------------------------

if not exists (select from deleted) --插入

insert 数据库B[user](username,userpass,landtime) select username,password,lastlogin from inserted

else if not exists (select from inserted)--删除

delete 数据库B[user] where id in (select userid from deleted)

else--更新

update [user]

set

[user]username=iusername,

[user]userpass=ipassword

from 数据库B[user] as [user],

inserted as i

where [user]id=iuserid

alter table 数据库B[user] ENABLE TRIGGER [数据库Btr_user]

解析:

什么地方不懂

1 不懂触发器原理以及工作过程

2 不懂那个例子

不懂原理跟过程的话baidu一下会有很多,随便一本将数据库的书都会提到,不再赘述这个例子可能是有点长,我给你翻译一下吧

==================================

CREATE trigger [数据库Atr_user] on [user]

/ 建立触发器的基本语法 在数据库A的user表建立一个名字tr_user的触发器 /

for update,insert,delete

/监视 修改 插入 删除/

as

alter table 数据库B[user] DISABLE TRIGGER [数据库Btr_user]

/ 修改这个表的时候就不要做触发了,disable掉 /

-----------------------------------

if not exists (select from deleted) --插入

/ 如果deleted表为空,那么 /

insert 数据库B[user](username,userpass,landtime) select username,password,lastlogin from inserted

/ 将inserted表(就是对于触发器来说刚刚 入的 )插入到Buser /

else if not exists (select from inserted)--删除

/ 否则 如果 inserted 为空 /

delete 数据库B[user] where id in (select userid from deleted)

/ 那么删除Buser下id是deleted 中出现的id 这里用了in /

else--更新

update [user]

set

[user]username=iusername,

[user]userpass=ipassword

from 数据库B[user] as [user],

inserted as i

where [user]id=iuserid

/ update就很明显了,凡是updated的都来更新,保持一样就可以了 /

alter table 数据库B[user] ENABLE TRIGGER [数据库Btr_user]

这里用了一个技巧,根据inserted 以及deleted 来判断当前是插入或者删除,然后如果是插入的,那么另一个表删除,删除的另一个表插入更新最简单(可能是用来两个表互相交换数据,跟你的目的不一样)

如果你觉得难以理解,单独来创建三个触发器, insert delete update也行,这样就能减少一些判断比如insert

你可以先删除 bbb ccc里面id in inserted的(为了防止重复),然后再全部insert进去

不知道你为什么要这么做,感觉意义不大明显的冗余啊如果是想保留数据,那么定期添加一个计划任务来用数据传输服务多好 再说备份也是很好用的

希望我理解没有错误


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13348205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存