Столбцы MySQL с нулевым стилистическим выбором по умолчанию или нет?

Во многих разновидностях SQL существует три способа, которыми вы можете неявно устанавливать столбец в NULL при каждой вставке строки. Это

columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL

первый устанавливает флаг NULL (в отличие от NOT NULL), второй оставляет флаг NULL равным значению по умолчанию, а третий устанавливает флаг NULL и устанавливает неявное значение как NULL.I '

Мы слышали о том, что в Microsoft SQL второй вариант не совсем тот же, поскольку вы также можете настроить значение по умолчанию для флага NULL для таблиц или схем.

Но для MySQL я неЯ не верю, что есть такая особенность. Кроме того, в MySQL столбцы с флагом NULL, в отличие от столбцов NOT NULL, всегда неявно устанавливаются в NULL при вставке, если нет явного значения, даже если включен строгий режим. Таким образом, все эти объявления столбцов остаются идентичными.

В моем сценарии MySQL для каждого столбца NOT NULL я указываю значение DEFAULT для столбцов, которые я неНе ожидайте установки некоторых вставок в моем приложении, чтобы избежать каких-либо проблем, если бы я должен был включить строгий режим. Таким образом, я чувствую, что было бы более симметрично, если бы я выбрал третий вариант, даже если он является самым многословным и явным. Являются ли декларации, подобные третьему варианту, общими, или же первый или второй вариант встречаются чаще в других? скрипты?

Я подумывал об использовании второго подхода, потому чтопсевдоним, который использует дамп MySQL, но яя не уверен, чтоЭто хорошая идея, поскольку она также сбрасывает целочисленные литералы как строки (одинарные кавычки) в предложениях по умолчанию для объявлений столбцов.

Этот вопрос может показаться большим мнением, чем тот, у которого есть решение, но я также хочу знать о любых потенциальных ошибках, о которых я не знаю. Я могу выбрать в будущем миграцию с MySQL на PostgreSQL, и я также мог бы воспользоваться некоторыми советами этих экспертов, например, если PostgreSQL различает эти случаи, как это делает MS-SQL. Поправь меня, если я ошибаюсь, если я сделал какие-то неверные предположения.

Ответы на вопрос(2)

Ваш ответ на вопрос