2009-11-24 43 views
1

我试图插入一个表名为Booklets的表中有一个可为空的列BookletSubjectID。插入失败,因为MySqlcan't设置一个可为空的列

“BookletSubjectID”不能为空

这里是我的MySQL会议逐字复制。我必须错过一些非常明显的东西,但看不到它。

mysql> desc Booklets; 
+----------------------+---------------+------+-----+---------+----------------+ 
| Field    | Type   | Null | Key | Default | Extra   | 
+----------------------+---------------+------+-----+---------+----------------+ 
| BookletID   | int(11)  | NO | PRI | NULL | auto_increment | 
| MemberID    | int(11)  | NO | MUL | NULL |    | 
| Name     | varchar(255) | YES |  | NULL |    | 
| Description   | varchar(1000) | YES |  | NULL |    | 
| RelationshipTypeID | varchar(12) | YES | MUL | NULL |    | 
| RateTypeID   | varchar(2) | YES | MUL | NULL |    | 
| PrivTypeID   | varchar(2) | NO | MUL | NULL |    | 
| PhotoAlbumID   | int(11)  | YES | MUL | NULL |    | 
| VideoAlbumID   | int(11)  | YES | MUL | NULL |    | 
| BookletSubjectTypeID | varchar(2) | NO | MUL | NULL |    | 
| BookletSubjectID  | int(11)  | YES | MUL | NULL |    | 
| Deleted    | tinyint(1) | NO |  | 0  |    | 
| Credt    | datetime  | NO |  | NULL |    | 
| Updt     | datetime  | YES |  | NULL |    | 
+----------------------+---------------+------+-----+---------+----------------+ 
14 rows in set (0.00 sec) 

mysql> INSERT Booklets (MemberID, Name, PrivTypeID, BookletSubjectTypeID, Deleted, Credt) 
VALUES (546502, 'dddd','pu', 'no', 1, NOW()); 
ERROR 1048 (23000): Column 'BookletSubjectID' cannot be null 

谢谢, 唐

回答

2

似乎:

如果表中有一列,其是多列主键的一部分,则该列 不能为空。

请参阅this bug report及其响应。

相关问题