小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

[MySQL]MySQL 中通過使用UNIQUE KEY 來控制字段值不重復(fù)的問題.

 思念是一種餅 2011-04-11
語法:
UNIQUE KEY `test` (`xref_key`,`xref_dbname`)
UNIQUE KEY `xref_key` (`xref_key`,`xref_dbname`)

       上述語法檢查xref_key與xref_dbname的組合是否是唯一值,可以設(shè)定多個字段的組合。其中,test是索引表中的字段名稱。
        該方法適合用來解決多個字段相互依賴,且必須滿足唯一性的條件的情況。在經(jīng)常新增或刪除資料表中auto_increment的primary key會造成大量的斷層,這類易變動的資料表使用auto_increment并不是一個很適合的索引值,所以可以采取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

如果值重復(fù),就會拋出如下異常

org.springframework.dao.DataIntegrityViolationException:
org.hibernate.exception.ConstraintViolationException:

 

同時(shí),為了效驗(yàn)不重復(fù)的字段,我們可以遵循h(huán)ibernate同時(shí)持有id字段和version字段的最佳實(shí)踐,

這樣會更加輕松的解決問題.
 
---------------------------------------------------
CREATE TABLE `aaa` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(32) default NULL,
PRIMARY KEY  (`id`),
UNIQUE KEY `name` (`name`)
);
里面的ID是自增的主鍵,name則是不能重復(fù)的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多