AS400上的DB2和无效列上插入的无效值



在处理不可用的列时,AS400机器上DB2的行为有差异?

有人告诉我,如果您将一个空值插入没有null的列中,在DB2 AS400上,它将起作用(听起来很奇怪),但是如果DB2在Windows上运行,则会丢弃错误。

我将在掌握环境后立即对此进行验证,仍然想知道是否有人听说过。

关闭注:随着时间的流逝,这是一个变化的模式...因此,列在发行版中发生了变化,这导致了混乱。

我会说答案是否定的。这是我使用v7r1上使用Interactive SQL(STRSQL)进行的快速测试:

CREATE TABLE QTEMP/TEST (F1 INT, F2 INT NOT NULL, F3 INT NOT NULL WITH DEFAULT);
INSERT INTO QTEMP/TEST (F1, F2, F3) VALUES(NULL, NULL, NULL);
Null values not allowed in column or variable F2.
INSERT INTO QTEMP/TEST (F1, F2, F3) VALUES(NULL, 0, NULL);
Null values not allowed in column or variable F3.

詹姆斯在这里有正确的答案。就差异而言,是的。实际上,DB2有三种口味,每个口味都有自己的代码库。这些口味为z,dB的db2,i和luw的db2。他们试图使该功能设置尽可能接近相同,但是有些东西是其中的东西,而不是其他东西。大多数差异是由于环境差异所致。例如,将i的DB2紧密整合到OS中。操作系统已经管理文件系统和应用程序资源,因此数据库使操作系统可以执行操作系统的操作,并且不会重复许多此类努力,因此您找不到有关表空间等的命令。并不是说文件系统不是管理的,而是操作系统可以做到的,而不是数据库引擎。如果您比较LUW和我的文档,您还将在某些功能工作的方式上找到一些差异。这些是多个代码库的结果,这些代码库具有不同的客户库来推动新功能。它们很近,但不完全相同,

相关内容

  • 没有找到相关文章

最新更新