DB2 和 Django - 为什么表总是按列组织创建?

DB2 And Django - Why Tables Always Created As Column Organized?

我已经使用了这个问题的答案中提到的步骤

但是所有 table 都是按列组织的方式创建的,这会在更改 table 时产生问题,这个问题是针对初始迁移本身的管理、身份验证、内容类型等

我们能否以某种方式将 table 创建更改为按行排列?

具体来说,我得到了下面提到的错误:

django.db.utils.ProgrammingError:异常('Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL1667N The operation failed because the operation is not supported with the type of the specified table. Specified table: ".DJANGO_CONTENT_TYPE". Table type: "ORGANIZE BY COLUMN". Operation: "ALTER TABLE". SQLSTATE=42858\r SQLCODE=-1667')

您的问题没有提及您的云详细信息,特别是它是共享的还是私有的 Db2 实例等。此外,您可能正在云上使用 Db2 仓库,它可能配置为经常使用 organize by column 的分析工作负载默认为 table 秒。

用于共享使用的数据库配置和 Db2 实例配置可能(由 IBM)为云实例预先配置,您可能无法更改它们。

在 Db2-instance 上,Db2-registry 变量设置 DB2_WORKLOAD=ANALYTICS 和数据库参数 dft_table_org 可以确定默认的 table 组织。您可以通过 table 函数和 SQL 或通过 shell 访问私有 Db2 实例来查询这些值(如果您具有相关权限和相关访问权限)。

对于共享数据库或共享 Db2 实例,您可以安排 CREATE TABLE 语句 DDL 始终包含 ORGANIZE BY ROW 用于 table 用于 OLTP 类型处理的语句。