标签: db2

在 DB2 9.5 上删除数据库 - SQL1035N 数据库当前正在使用中

我从来没有第一次让这个工作,但现在我似乎根本无法做到。

某处有一个使用数据库的连接池,因此在应用程序使用数据库时尝试删除数据库应该会出现此错误。问题是当我发出这些命令时没有与数据库的连接:

db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase
Run Code Online (Sandbox Code Playgroud)

这总是给:

SQL1035N  The database is currently in use.  SQLSTATE=57019
Run Code Online (Sandbox Code Playgroud)

运行此命令显示没有连接/应用程序

DB2 list applications
Run Code Online (Sandbox Code Playgroud)

我什至可以停用数据库,但仍然无法删除它。

db2 => deactivate database mydatabase
DB20000I  The DEACTIVATE DATABASE command completed successfully.
db2 => drop database mydatabase
SQL1035N  The database is currently in use.  SQLSTATE=57019
db2 =>
Run Code Online (Sandbox Code Playgroud)

有人有任何线索吗?我正在以本地管理员(Windows 2008)的身份运行 cmd-windows,这也是 DB2 的管理员。connectionpool-user 在静止状态期间无法连接。

db2

8
推荐指数
1
解决办法
2万
查看次数

如何找到自动递增列的下一个生成值?

我在 IBM DB2 的自动增量列方面遇到了一些麻烦。起初,我的所有列都被定义为GENERATED ALWAYS,但是由于我在使用“db2 import ...”命令时遇到了这个问题,我将它们更改为GENERATED BY DEFAULT。这是必要的,因为我需要 ID 保持一致,因为其他表引用了它们。因此,不能使用“db2 import ... modified by identityignore ...”。

当我现在导入数据时,ID 被正确插入,但每次我这样做时,我必须记住通过获取最高的 Id+1 并像这样更改列来为自动增量列设置一个新的开始:

SELECT MAX(mycolumn)+ 1 FROM mytable;
ALTER TABLE mytable ALTER COLUMN mycolumn RESTART WITH <above_result>;
Run Code Online (Sandbox Code Playgroud)

如果我忘记了这一点,Insert-Statement 将因重复的 PK 错误而失败,因为自动增量列是主键。

所以我的问题是:有没有办法找到自动增量列的下一个值,所以我可以编写语句来检查,如果这个值小于 SELECT MAX 并且需要设置?

或者:这整个事情是不是像我觉得的那么复杂?我可以以某种方式导入数据,保留 ID 并使自动增量列仍按预期工作吗?

sql database db2

6
推荐指数
1
解决办法
3万
查看次数

恢复 DB2 数据库

有没有办法将备份在 Windows XP 中的 db2 数据库恢复到 linux 机器上?我在两个操作系统上使用相同版本的 db2 -> DB2 Express-C 9.7 源操作系统:Windows XP SP2 目标操作系统:Ubuntu 9.04

linux db2 restore

4
推荐指数
1
解决办法
5779
查看次数

我应该使用哪个网络服务器

我有一个 iseries 数据库,我想在它上面构建网页。我想使用 Java 平台,并希望就 Apache 与 Websphere 作为最佳选择平台的优势提出建议。我现在也没有。我真的对 Websphere 的所有组件感到困惑。

db2 apache-2.2

2
推荐指数
1
解决办法
209
查看次数

标签 统计

db2 ×4

apache-2.2 ×1

database ×1

linux ×1

restore ×1

sql ×1