双精度默认值0不为null

时间:2018-10-05 19:00:25

标签: sql oracle precision create-table

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

创建表abc_TEMP(列_1双精度默认值0不为空, ....);

2 个答案:

答案 0 :(得分:2)

您正在创建名为column_1的{​​{3}}数据类型列(这是二进制精度为126的浮点数)。

此列不明确接受null值,但是如果在INSERT语句中省略该值,则将为其设置数字0。

答案 1 :(得分:0)

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

这还意味着,如果有人在表中插入一行并且未指定COLUMN_1的值,则Oracle应该仅将该行的默认值设置为零。这就是DEFAULT 0的意思。

这还意味着,如果有人明确尝试将COLUMN_1的值设置为NULL,则不应允许他们,并且他们会得到错误。这就是NOT NULL的意思。