CREATE TABLE `aaa` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ); 里面的ID是自增的主键,name则是不能重复的。
语法:
UNIQUE KEY `test` (`xref_key`,`xref_dbname`) UNIQUE KEY `xref_key` (`xref_key`,`xref_dbname`) ---------------------------------------------------
CREATE TABLE `TB_REGION` ( `ID` bigint(20) NOT NULL auto_increment, `VERSION` decimal(10,0) default NULL, `REGION_NAME` varchar(80) NOT NULL default '', `REGION_DESC` varchar(255) NOT NULL default '', `ACTIVE_IND` tinyint(1) default NULL, `REMARKS` varchar(255) default NULL, `CREATE_BY` bigint(20) default NULL, `CREATE_TS` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `UPDATE_BY` bigint(20) default NULL, `UPDATE_TS` timestamp NOT NULL default '0000-00-00 00:00:00', `SHOWINDEX` int(11) NOT NULL default '9999', PRIMARY KEY (`ID`), UNIQUE KEY `INDEX_REGION_NAME` (`REGION_NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我使用了hibernate+spring 如果值重复,就会抛出如下异常 org.springframework.dao.DataIntegrityViolationException:
同时,为了效验不重复的字段,我们可以遵循hibernate同时持有id字段和version字段的最佳实践, 这样会更加轻松的解决问题.
---------------------------------------------------
|
|