一个数据库中的两个表
UPDATE A表 SET A表a=B表b FROM A表 INNER JOIN B表 ON A表id=B表id
还是两个库中的两个表
UPDATE A库dboA表 SET A库dboA表a= B库dboB表b FROM A库dboA表 INNER JOIN B表 ON A库dboA表id=B库dboB表id
ora-30036 UNDO表空间不足
解决:
加大UNDO表空间
alter database datafile ‘undoxxxdbf’ resize xxxM;
或设置为自动扩展
alter database datafile ‘undoxxxdbf’ autoextend on next 100M maxsize xxxM;
-----------------------------------------------------------------------------------------------------
执行下面的语句查看表空间及使用状况
SELECT UPPER(FTABLESPACE_NAME) "表空间名",
DTOT_GROOTTE_MB "表空间大小(M)",
DTOT_GROOTTE_MB - FTOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((DTOT_GROOTTE_MB - FTOTAL_BYTES) / DTOT_GROOTTE_MB 100,2),'99099') "使用比",
FTOTAL_BYTES "空闲空间(M)",
FMAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 1024), 2) MAX_BYTES
FROM SYSDBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DDTABLESPACE_NAME,
ROUND(SUM(DDBYTES) / (1024 1024), 2) TOT_GROOTTE_MB
FROM SYSDBA_DATA_FILES DD
GROUP BY DDTABLESPACE_NAME) D
WHERE DTABLESPACE_NAME = FTABLESPACE_NAME;
使用merge语句吧
语法:
MERGE INTO 目标表 AS A
USING 源表 AS B
ON (ACOL = BCOL) --匹配条件
WHEN MATCHED THEN --当匹配上就用B表的字段更新A表的字段
UPDATE SET
ACOL1 = BCOL1,
ACOLn = BCOLn
WHEN NOT MATCHED THEN INSERT(ACOL1,,ACOLn) --下面这句是不匹配就插入数据
VALUES (BCOL1,,BCOLn);
mysql使用jdbc的批量插入需要在连接Mysql的地方加上rewriteBatchedStatements=true
,也就是springdatasourceurl = jdbc:mysql://1921681544:3306/ml_testuseSSL=false&useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true
,如果不加这个的话,和自己循环插入差不多
以上就是关于数据库update语句 多数据库全部的内容,包括:数据库update语句 多数据库、orcale数据库执行一个update语句,但数据量太大了(8000多万条),每条记录都要修改。、sql在update更新时如何快速且大批量的更新数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)