Как правильно установить значения по умолчанию в TCA, чтобы избежать строгих сообщений об ошибках и когда это необходимо? - PullRequest
0 голосов
/ 30 марта 2020

В более новых версиях MySQL / MariaDB строгий обычно устанавливается по умолчанию, например,

Стандартный режим SQL в MySQL 8.0 включает следующие режимы: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO и NO_ENGINE_SUBSTITUTION.

https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html*1009*

  1. В частности, STRICT_TRANS_TABLES может привести к ошибке (или STRICT) в случае ошибки (или STRIC_) вставляется или изменяется для столбцов, отличных от NULL, которые не содержат явного значения.

    Значение отсутствует, если новая вставляемая строка не содержит значения для столбца, не являющегося NULL, который имеет в его определении нет явного предложения DEFAULT.

    Это может привести к ошибке:

    SQL error: 'Field 'fieldname' doesn't have a default value' (tt_content:NEW5e57781975ff4380496484)
    
  2. Или, например, если вставленное значение имеет неверный тип данных, например, вставка строки '' для целочисленного поля.

    Это может привести к ошибке:

    SQL error: 'Incorrect integer value: '' for column `databasename`.`tablename`.`fieldname` at row 1' (sys_category:NEW5e8194a0cdd6b210822798)
    

Этого обычно можно избежать, если t по умолчанию он правильно установлен в TCA.

Итак, когда это необходимо (например, для каких типов данных) и как правильно его настроить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...