Готовая ведомость за тонны колонн
У меня есть таблица с 74 столбцами, и я хочу вставить в нее данные. Есть ли способ вставить только 5 столбцов в эту таблицу и оставить остальные как нулевые? Столбцы тоже не в порядке, это может быть
ps.setInt(1, 1);
ps.setInt(7, "Steve");
ps.setInt(10, time);
так далее....
Должен ли я заполнить данные для каждого столбца?
Структура таблицы:
CREATE TABLE IF NOT EXISTS `vbulletin_user` (
`userid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`usergroupid` smallint(5) unsigned NOT NULL DEFAULT '0',
`membergroupids` char(250) NOT NULL DEFAULT '',
`displaygroupid` smallint(5) unsigned NOT NULL DEFAULT '0',
`username` varchar(100) NOT NULL DEFAULT '',
`password` char(32) NOT NULL DEFAULT '',
`passworddate` date NOT NULL DEFAULT '0000-00-00',
`email` char(100) NOT NULL DEFAULT '',
`styleid` smallint(5) unsigned NOT NULL DEFAULT '0',
`parentemail` char(50) NOT NULL DEFAULT '',
`homepage` char(100) NOT NULL DEFAULT '',
`icq` char(20) NOT NULL DEFAULT '',
`aim` char(20) NOT NULL DEFAULT '',
`yahoo` char(32) NOT NULL DEFAULT '',
`msn` char(100) NOT NULL DEFAULT '',
`skype` char(32) NOT NULL DEFAULT '',
`showvbcode` smallint(5) unsigned NOT NULL DEFAULT '0',
`showbirthday` smallint(5) unsigned NOT NULL DEFAULT '2',
`usertitle` char(250) NOT NULL DEFAULT '',
`customtitle` smallint(6) NOT NULL DEFAULT '0',
`joindate` int(10) unsigned NOT NULL DEFAULT '0',
`daysprune` smallint(6) NOT NULL DEFAULT '0',
`lastvisit` int(10) unsigned NOT NULL DEFAULT '0',
`lastactivity` int(10) unsigned NOT NULL DEFAULT '0',
`lastpost` int(10) unsigned NOT NULL DEFAULT '0',
`lastpostid` int(10) unsigned NOT NULL DEFAULT '0',
`posts` int(10) unsigned NOT NULL DEFAULT '0',
`reputation` int(11) NOT NULL DEFAULT '10',
`reputationlevelid` int(10) unsigned NOT NULL DEFAULT '1',
`timezoneoffset` char(4) NOT NULL DEFAULT '',
`pmpopup` smallint(6) NOT NULL DEFAULT '0',
`avatarid` smallint(6) NOT NULL DEFAULT '0',
`avatarrevision` int(10) unsigned NOT NULL DEFAULT '0',
`profilepicrevision` int(10) unsigned NOT NULL DEFAULT '0',
`sigpicrevision` int(10) unsigned NOT NULL DEFAULT '0',
`options` int(10) unsigned NOT NULL DEFAULT '33570831',
`birthday` char(10) NOT NULL DEFAULT '',
`birthday_search` date NOT NULL DEFAULT '0000-00-00',
`maxposts` smallint(6) NOT NULL DEFAULT '-1',
`startofweek` smallint(6) NOT NULL DEFAULT '1',
`ipaddress` char(15) NOT NULL DEFAULT '',
`referrerid` int(10) unsigned NOT NULL DEFAULT '0',
`languageid` smallint(5) unsigned NOT NULL DEFAULT '0',
`emailstamp` int(10) unsigned NOT NULL DEFAULT '0',
`threadedmode` smallint(5) unsigned NOT NULL DEFAULT '0',
`autosubscribe` smallint(6) NOT NULL DEFAULT '-1',
`pmtotal` smallint(5) unsigned NOT NULL DEFAULT '0',
`pmunread` smallint(5) unsigned NOT NULL DEFAULT '0',
`salt` char(30) NOT NULL DEFAULT '',
`ipoints` int(10) unsigned NOT NULL DEFAULT '0',
`infractions` int(10) unsigned NOT NULL DEFAULT '0',
`warnings` int(10) unsigned NOT NULL DEFAULT '0',
`infractiongroupids` varchar(255) NOT NULL DEFAULT '',
`infractiongroupid` smallint(5) unsigned NOT NULL DEFAULT '0',
`adminoptions` int(10) unsigned NOT NULL DEFAULT '0',
`profilevisits` int(10) unsigned NOT NULL DEFAULT '0',
`friendcount` int(10) unsigned NOT NULL DEFAULT '0',
`friendreqcount` int(10) unsigned NOT NULL DEFAULT '0',
`vmunreadcount` int(10) unsigned NOT NULL DEFAULT '0',
`vmmoderatedcount` int(10) unsigned NOT NULL DEFAULT '0',
`socgroupinvitecount` int(10) unsigned NOT NULL DEFAULT '0',
`socgroupreqcount` int(10) unsigned NOT NULL DEFAULT '0',
`pcunreadcount` int(10) unsigned NOT NULL DEFAULT '0',
`pcmoderatedcount` int(10) unsigned NOT NULL DEFAULT '0',
`gmmoderatedcount` int(10) unsigned NOT NULL DEFAULT '0',
`assetposthash` varchar(32) NOT NULL DEFAULT '',
`fbuserid` varchar(255) NOT NULL DEFAULT '',
`fbjoindate` int(10) unsigned NOT NULL DEFAULT '0',
`fbname` varchar(255) NOT NULL DEFAULT '',
`logintype` enum('vb','fb') NOT NULL DEFAULT 'vb',
`fbaccesstoken` varchar(255) NOT NULL DEFAULT '',
`newrepcount` smallint(5) unsigned NOT NULL DEFAULT '0',
`bloggroupreqcount` int(10) unsigned NOT NULL DEFAULT '0',
`showblogcss` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`userid`),
KEY `usergroupid` (`usergroupid`),
KEY `username` (`username`),
KEY `birthday` (`birthday`,`showbirthday`),
KEY `birthday_search` (`birthday_search`),
KEY `referrerid` (`referrerid`),
KEY `fbuserid` (`fbuserid`),
KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
1 ответ
Как заявил в комментарии Луиджи Мендоса, запрос будет работать.
пример в этом запросе:
ps=conn.prepareStatement("INSERT INTO vbulletin_user(userid,username,password,email) VALUES(?,?,?,?)");
ps.setInt(1,1);
ps.setString(2,"scott");
ps.setString(3,"tiger");
ps.setString(4,"[email protected]");
значения по умолчанию будут вставлены для других столбцов, как они упоминаются в схеме.
И вы должны установить значение по умолчанию для Date
к какой-то конкретной дате вместо 0000-00-00
как в вашем passworddate
а также birthday_search
столбец, так как это приведет к некоторому исключению при доступе по Java
java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
Вот скрипка, в этом я просто изменил значение для default date
за passworddate
а также birthday_search
колонны.