警告:字段XXX没有默认值

时间:2016-02-29 20:13:17

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

1 个答案:

答案 0 :(得分:0)

正如文森特在评论中提到的那样,该表需要'HUN2'专栏的价值或缺乏价值。无论哪种方式,都需要明确或隐含地陈述:

  
      
  1. 如果要为该特定列插入值,请插入它。如果您没有值(此特定记录的 ),那么您   需要明确说明(通过插入NULL值)。
  2.   
  3. 如果'HUN2'的值最有可能是大多数记录的特定值,或者至少是开头的,(但是,可能会改变   此后),然后您可以将该值设置为默认值。
  4.   

上述特定值可以是实际值或其缺乏(NULL)。也就是说,NULL本身可以设置为默认值。

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

希望这有帮助!!!