#mysql #sql
#mysql #sql
Вопрос:
Вот ошибка, которую я получаю:
SQLSTATE[23000]: нарушение ограничений целостности: 1048 Столбец ‘financial_access’ не может быть нулевым (SQL: вставить в
sss_users
(first_name
,last_name
,password
,roles
,church
,financial_access
,church_sponsor
,updated_at
,created_at
) ценности (Дебипрасад, Саху, my-email-id@gmail.com , y$ohh67yNFjzYCbhYUrEJ2u.C.oe9xuOndhG2m7pFs7P5pVIwV9MxwC, администратор, , , , 2014-06-23 15:51:50, 2014-06-23 15:51:50))
church
поле естьsmallint(5) UNSIGNED not null
.financial_access
естьtinyint(1) default '0' not null
.
Почему я получаю ошибку для tinyint(1)
поля, но не для smallint(5)
поля, которое так легко принимает пустую строку в запросе?
Комментарии:
1. Я подозреваю, что в сообщении об ошибке отображается только один столбец с ошибкой, а не все столбцы с ошибками. Поэтому, если вы исправите
financial_access
, вы получите сообщение об ошибке дляchurch
.2. Нет, я исправил ошибку, указав ‘0’ как для ‘financial_access’, так и для ‘church_sponsor’. Но я не получаю никаких исключений для церкви. Он принимает значение null в запросе и сохраняет запись в базе данных как 0.
3. Я даже не уверен, как вы разрешаете этот синтаксис. Я получаю синтаксическую ошибку, когда пытаюсь поставить две запятые в строке в
INSERT
запросе.