我在下面的脚本中收到此错误:
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),没有默认值,我不认为我应该设置任何值。
答案 0 :(得分:0)
正如文森特在评论中提到的那样,该表需要'HUN2'专栏的价值或缺乏价值。无论哪种方式,都需要明确或隐含地陈述:
- 如果要为该特定列插入值,请插入它。如果您没有值(此特定记录的 ),那么您 需要明确说明(通过插入
NULL
值)。- 如果'HUN2'的值最有可能是大多数记录的特定值,或者至少是开头的,(但是,可能会改变 此后),然后您可以将该值设置为默认值。
醇>
上述特定值可以是实际值或其缺乏(NULL
)。也就是说,NULL本身可以设置为默认值。
根据业务规则,您可以决定上面提到的两个选项中的哪一个。
希望这有帮助!!!