Python 警告:字段XXX不';没有默认值

Python 警告:字段XXX不';没有默认值,python,sql,Python,Sql,我在下面的脚本中遇到此错误: 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,

我在下面的脚本中遇到此错误:

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),没有默认值,我不认为应该设置任何值。

正如Vincent在他的评论中提到的,表需要一个值,或者“HUN2”列缺少该值。无论哪种方式,都需要明确或隐含地说明:

  • 如果要为该特定列插入值,请插入它。如果您没有值(对于此特定记录),则 需要明确说明(通过插入
    NULL
    值)
  • 如果“HUN2”的值最有可能是大多数记录的特定值,或者至少是开始时的值,(但是,可能会更改) 之后),则可以将该值设置为默认值
  • 上述特定值可以是实际值,也可以是实际值(
    NULL
    )。也就是说,可以将NULL本身设置为默认值

    根据业务规则,您可以决定使用上面提到的两个选项中的哪一个


    希望这有帮助

    如果没有默认值,并且您没有显式地设置任何值,那么您希望该值是什么?我应该将“”设置为默认值,还是设置为NULL,还是应该在字段中插入“”?您能描述一下您的表用户吗?