ABAP的问题:表为空时,可以modify 吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP的问题:表为空时,可以modify 吗相关的知识,希望对你有一定的参考价值。

这个应该是针对内部表来说的,由于modify的正确做法应该放在loop里面,或者指定了index,所以应该不会出现这样的情况。

如果强制执行的话,会不会出错,这还真不确认。追问

那modify可以只修改内表的某一项吗,语法格式是怎么样的啊?

追答

可以的。语法是这样的:modify table from wa TRANSPORTING 某一项。
TRANSPORTING可以指定你要修改的那个项目,也可以多个。

参考技术A 内表还是db表?追问

是内表。。
另外,modify可以只修改内表的某一项吗,语法格式是怎么样的啊?

MySQL配置,允许truncate在引用表为空时执行

【中文标题】MySQL配置,允许truncate在引用表为空时执行【英文标题】:MySQL configuration, allow truncate to execute when reference table is empty 【发布时间】:2014-04-29 04:49:24 【问题描述】:

我在两台不同的服务器上运行完全相同的代码:

Truncate table2;
Truncate table1;

两台服务器的表结构完全相同,table2有一个外键引用table1。

由于 table2 在 table1 之前被截断,它是空的,并且没有指向 table1 的键,所以截断 table2 应该没有问题。 但是!!!:

在一台服务器上运行良好,而在另一台服务器上出现外键约束错误:

Cannot truncate a table referenced in a foreign key constraint (user`.`table2`, 
CONSTRAINT `table2_ibfk_1` FOREIGN KEY (`ID`) REFERENCES `user`.`table1` (`ID`))

从中我可以理解,必须有一个可以更改的设置,以便始终允许截断空表。如果不是服务器一个应该给我同样的错误。

我知道我可以使用 delete 代替,但它是一个较长的过程,在这种情况下需要重置 auto_increment。

我只是想了解为什么服务器 1 没有错误而服务器 2 有。

有什么想法吗? 谢谢。

【问题讨论】:

只需删除索引,截断表,然后再次添加外键。 【参考方案1】:
SET FOREIGN_KEY_CHECKS=0; TRUNCATE table1; SET FOREIGN_KEY_CHECKS=1;

【讨论】:

好,但我不必在服务器 1 上运行该查询,它只是允许我这样做,我想还有一些 mysql 配置要做。 必须在服务器 1 上设置为 0。为了数据完整性,最好将其保持为 1。这就是我在查询中将其设置回 1 的原因。 否 :( 不是这种情况,在两台服务器上都设置为 ON (1)。

以上是关于ABAP的问题:表为空时,可以modify 吗的主要内容,如果未能解决你的问题,请参考以下文章

带有寻呼机的表排序器 - 表为空时强制更新

MySQL配置,允许truncate在引用表为空时执行

仅当右表为空时,LEFT JOIN 才返回左表的第一行

如果表为空,则插入多条记录

Abap range 表相关问题

关与ABAP语法的READ和MODIFY之间的问题