+-

我的用户表先前有字符串主键,现在我添加了一个新字段userid bigint(20)并创建了这个主键.
然后补充说
然后补充说
ALTER TABLE smsusers AUTO_INCREMENT = 2335;
用户表中的总记录为2334,下一条记录的值应为2335
并且应该在添加记录时自动递增.
问题是从我的应用程序插入数据时显示
跟随错误
SQLException java.sql.SQLException: Field 'userid' doesn't have a default value
如何解决这个问题
编辑:尝试插入新数据时
INSERT INTO `dbname`.`smsusers` ( `password`, `fname`, `lname`,
`mailid`, `dob`, `gender`) VALUES ('asdf', 'asdf', 'asdf',
'[email protected]', '2013-10-10', 'm');
它显示以下错误
#1062 - Duplicate entry '0' for key 1
编辑:
最初我的主键是id而不是我添加了userid并创建了这个主键
我的表结构是
CREATE TABLE `smsusers` (
`id` varchar(60) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL,
`fname` varchar(30) NOT NULL,
`lname` varchar(30) DEFAULT NULL,
`mailid` varchar(50) NOT NULL,
`dob` date NOT NULL,
`gender` varchar(10) NOT NULL,
`city` varchar(70) DEFAULT NULL,
`userid` int(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`userid`),
KEY `id_pk_unique` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
在smsusers中插入数据时,它只将默认值设为0而不是递增值.
最佳答案
运行以下查询.然后不用担心. 🙂
ALTER TABLE smsusers MODIFY COLUMN userid INT(20) AUTO_INCREMENT;
ALTER TABLE smsusers AUTO_INCREMENT = 2335;
点击查看更多相关文章
转载注明原文:mysql – SQLException java.sql.SQLException:字段’userid’没有默认值 - 乐贴网