Укажите список столбцов в операторе INSERT ...
INSERT INTO test (text) VALUES ('test')
^^^^^^
Любым столбцам, опущенным в списке столбцов, будет присвоено значение по умолчанию.В случае столбца без назначенного значения по умолчанию используется значение NULL.Это будет эквивалентно
INSERT INTO test (text, cod) VALUES ('test', NULL)
^^^^^ ^^^^^^
Обратите внимание, что первое значение в списке значений идет в первый столбец в списке столбцов, второе значение во второй столбец и т. Д.
Еслисписок столбцов опущен, тогда список столбцов по умолчанию равен all столбцов, определенных в таблице, в том же порядке, в котором они определены в таблице.Таким образом, мы могли бы также написать:
INSERT INTO test (cod, text) VALUES (NULL, 'test')
Так что это только особый случай, когда мы поставляем значения для для каждого столбца, а значения поставляются в в том же порядке поскольку столбцы определены в таблице, где мы можем опустить список столбцов.
Рекомендуется всегда указывать список столбцов, а не полагаться на порядок столбцов в таблице.Это поможет будущему читателю выяснить, какие значения присваиваются каким столбцам, без необходимости искать определение таблицы.Это также предотвращает «разрыв» оператора INSERT при добавлении нового столбца в таблицу или при переупорядочении столбцов.