Двойная точность по умолчанию 0 не ноль - PullRequest
0 голосов
/ 05 октября 2018

при создании таблицы было использовано следующее определение столбца.Может кто-нибудь объяснить, что означает определение первого столбца?

Создать таблицу abc_TEMP (column_1 DOUBLE PRECISION DEFAULT 0 Не ноль, ....);

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы создаете DOUBLE PRECISION столбец типа данных с именем column_1 (это число с плавающей запятой с двоичной точностью 126).

Этот столбец явно не принимает нулевые значения, но если вы опустите его в операторе INSERT, ему будет присвоено число 0.

0 голосов
/ 05 октября 2018

Это означает, что COLUMN_1 должен хранить значения, которые являются числами с плавающей запятой с двоичной точностью 126 битов.Поэтому, если кто-то попытается вставить строку или дату в это поле, он должен получить ошибку.Это то, что означает DOUBLE PRECISION.

Это также означает, что если кто-то вставляет строку в таблицу и не указывает значение для COLUMN_1, Oracle должен просто по умолчанию установить нулевое значение в этой строке.Это то, что означает DEFAULT 0.

Это также означает, что если кто-то явно пытается установить значение COLUMN_1 в NULL, он не должен быть допущен и должен получить ошибку.Вот что означает NOT NULL.

...