双精度默认0不为空

Double precision default 0 not null

创建table时,使用了下面的column_definition。有人可以解释第一列定义的含义吗?

Create Table abc_TEMP (column_1 DOUBLE PRECISION DEFAULT 0 Not Null,
....);

这意味着COLUMN_1应该存储具有126位二进制精度的浮点数的值。因此,如果有人试图将字符串或日期放入此字段,他们应该会收到错误消息。这就是 DOUBLE PRECISION 的意思。

这也意味着如果有人将一行插入 table 并且没有为 COLUMN_1 指定值,Oracle 应该在该行上默认值为零。这就是 DEFAULT 0 的意思。

这也意味着,如果有人明确试图将 COLUMN_1 的值设置为 NULL,他们不应该被允许并且他们应该得到一个错误。这就是 NOT NULL 的意思。

您正在创建一个名为 column_1DOUBLE PRECISION 数据类型列(这是一个二进制精度为 126 的浮点数)。

此列不明确接受空值,但如果您在 INSERT 语句中省略它,数字 0 将被设置为它。