gpt4 book ai didi

syntax - SQL查询以截断IBM DB2中的表

转载 作者:行者123 更新时间:2023-12-04 10:12:38 28 4
gpt4 key购买 nike

谁能给我语法在IBM DB2中截断一个表。

我正在运行以下命令:truncate table tableName immediate;
错误是DB2

SQLCODE=-104, SQLSTATE=42601, SQLERRMC=table;truncate ;JOIN , DRIVER=3.50.152 Message: An unexpected token "table" was found following "truncate ". Expected tokens may include: "JOIN ".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.50.152



该语法与IBM引用文档中指定的语法匹配: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.sqlref/db2z_sql_truncate.htm

最佳答案

关于truncating有一篇很棒的文章,这是DB2的要旨

几乎遵循标准。(从9.7版开始)
DB2要求将IMMEDIATE关键字添加到普通的TRUNCATE TABLE语句中,例如:

TRUNCATE TABLE someschema.sometable IMMEDIATE 

TRUNCATE TABLE必须是事务中的第一条语句。以TRUNCATE TABLE开头的事务可能包含其他语句,但是如果回滚该事务,则TRUNCATE TABLE操作不会被撤消。
DB2的TRUNCATE TABLE操作具有许多可选参数,有关更多信息,请参见文档。特别是REUSE STORAGE参数对于临时DBA任务可能很重要。
在<9.7的DB2版本中,您可能会滥用IMPORT语句。不幸的是,您需要知道从哪个操作系统执行该命令才能起作用:

在类似Unix的系统上:
从/dev/null的DEL REPLACE导入表名
在Windows上:
从DEL的NUL替换成表名的导入
不能在所有情况下滥用IMPORT。例如,当使用动态SQL时(从Java/.NET/PHP/...-不使用db2命令行处理器),您需要将IMPORT命令包装在对ADMIN_CMD的调用中,例如:
CALL ADMIN_CMD('IMPORT FROM /dev/null OF DEL REPLACE INTO tablename')

涉及其他操作的事务中似乎允许使用IMPORT,但是它意味着立即执行COMMIT操作。

也可以滥用ALTER TABLE命令来快速清空表,但是它需要更多特权,并且可能在前滚恢复方面引起麻烦。

这是从网站上获取的:
http://troels.arvin.dk/db/rdbms/#bulk-truncate_table-db2

关于syntax - SQL查询以截断IBM DB2中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3006999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com