#1067 - Invalid default value for 'bonusid' how can i fix this error?

坚强是说给别人听的谎言 提交于 2019-12-01 08:42:00

You don't have to give default value for a primary key with auto increment value. Since you have defined bonusid as a primary key and has defined auto increment.So this will automatically create a new value for bonusid whenever a new record is inserted.So try like this

CREATE TABLE bonus(
   bonusid INT( 10 ) NOT NULL AUTO_INCREMENT ,
   empid INT( 10 ) DEFAULT  '0' NOT NULL ,
   datebonus DATE DEFAULT  '0000-00-00' NOT NULL ,
   bonuspayment VARCHAR( 200 ) NOT NULL ,
   note TEXT NOT NULL ,
   PRIMARY KEY ( bonusid )
);

default value is not allowed to the primary key because of if you used default value to primary key then some time the record is inserted as same and primary key is not allowed to insert same value in this column.

check this

CREATE TABLE bonus(
bonusid INT( 10 )  AUTO_INCREMENT ,
empid INT( 10 ) DEFAULT  '0' NOT NULL ,
datebonus DATE DEFAULT  '0000-00-00' NOT NULL ,
bonuspayment VARCHAR( 200 ) NOT NULL ,
note TEXT NOT NULL ,
PRIMARY KEY ( bonusid )
);

if you use some column as primary key then it is default not null is not use to declare this. refer this link for auto increment

http://www.w3schools.com/sql/sql_autoincrement.asp

Even though the bonusid column is NOT NULL - you don't have to specify a default value if it has the special auto_increment option when you create the table.

Try As follows:

CREATE TABLE bonus(
bonusid INT( 10 ) NOT NULL AUTO_INCREMENT ,
empid INT( 10 ) DEFAULT  '0' NOT NULL ,
datebonus DATE DEFAULT  '0000-00-00' NOT NULL ,
bonuspayment VARCHAR( 200 ) NOT NULL ,
note TEXT NOT NULL ,
PRIMARY KEY ( bonusid )
);

FIDDLE DEMO HERE

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!