2016-02-29 7 views
0

я получаю эту ошибку ниже сценарий:Предупреждения: Поле XXX не имеет значения по умолчанию

Warning:Field 'HUN2' doesn't have a default value. 

cmd, pars = """INSERT INTO USERS_WORDS (USERID, WORDID, SUBTITLEID, CONTEXT, TIMESTAMP, DATE) SELECT * FROM (SELECT %s, 
    %s, %s, %s, %s, %s) AS tmp WHERE NOT EXISTS (SELECT USERID, WORDID FROM USERS_WORDS 
    WHERE USERID=%s AND WORDID=%s) LIMIT 1""", (userid, wordid, subtitleid, context, timestamp, date, userid, wordid) 

try: 
cursor.execute(cmd, pars) //The error points to this line 
db.commit() 

В приведенном выше заявлении я не вставить какое-либо значения в поле HUN2 так почему я получаю эта ошибка? Примечание: Поле является varchar (50), не имеет значения по умолчанию, и я не думаю, что я должен установить его.

+2

Если значение по умолчанию отсутствует, и вы не задаете какое-либо значение явно, что вы ожидаете от этого значения? –

+0

Должен ли я установить значение '' по умолчанию или NULL, или мне нужно вставить '' в поле? – erdomester

+0

Можете ли вы описать свою таблицу USERS_WORDS? – FallAndLearn

ответ

0

Как указал Винсент в своем комментарии, таблице требуется значение или его отсутствие для столбца «HUN2». Либо пути, оно должно указано явно или неявно:

  1. Если у вас есть значение, чтобы вставить для этого конкретного столбца, вставьте его. Если у вас нет значения (для данной записи), то вам необходимо указать, что явно (путем вставки значения NULL).
  2. Если значение «HUN2», скорее всего, будет конкретным значением для большинства записей или, по крайней мере, для начала, (, но может изменить после этого), то вы можете установить это значение по умолчанию.

Это выше конкретное значение может быть фактическое значение, или в их отсутствие (NULL). То есть, сам NULL может быть установлен как значение по умолчанию.

Основываясь на бизнес-правилах, вы можете решить, какой из двух вариантов, упомянутых выше, вы хотели бы использовать.

Надеюсь, это поможет !!!

Смежные вопросы