MySQL 中通过使用UNIQUE KEY 来控制字段值不重复的问题.

MySQL 中通过使用UNIQUE KEY 来控制字段值不重复的问题.

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:
org.hibernate.exception.ConstraintViolationException:

 

同时,为了效验不重复的字段,我们可以遵循hibernate同时持有id字段和version字段的最佳实践,

这样会更加轻松的解决问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值