<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    黑子的程序員生涯

    努力保持編程中美好的感覺

    如何刪除字典數據?

    所謂字典就是數據庫應用中被其他表(通常加以外鍵約束)引用的表,如客戶表引用客戶類型,那么客戶類型即為字典表。刪除字典數據要考慮是否已被其他數據引用,一般不允許做級聯刪除。

    這個問題想必大家都碰到過,但各有各的?做法。本人與若干同事討論過,將各種做法總結一下。

    1. 物理刪除,即用delete SQL刪除。如果字典數據被引用,則會拋出違反外鍵約束的異常,將其封裝為可讀的信息提示給用戶。JDBC中的異常類為SQLException,如何判斷是違反外鍵約束的異常呢?有方法如下:
      • 利用SQLException中的errorCode,這是數據庫特有的錯誤編碼。
      • 利用SQLException中的SQLState,在JAVA API DOC中說明這個是SQL99或XOPEN 標準的編碼,而且可以用connection的meta data來判斷符合哪個標準。經過的試驗,說明這個meta data不太好用,但是SQLState還是較為統一的。
        ?mysql5.0.21sqlserver2000oracle10postgresql8
        ANSI99 SQLState標準的違反外鍵約束編碼為:2300023000230002300023503(可能要在BatchUpdateException的nextException中才能取得)
        Connection的meta data中的getSQLStateType(),符合SQL99標準應該為22202
    2. 邏輯刪除。即置表中的一個標記字段為已刪除。查詢時不可見,但實際還保留在表中。 好處是不用處理數據被引用的情況。它的缺點是,如果數據沒有被引用,那么它其實可以被物理刪除,但確留在系統中成為垃圾數據;其次在數據有唯一編碼的情況下,被邏輯刪除的數據實際上還占用著一個編碼,有時用戶會疑惑,明明表中查不到這個編碼,我在新增的數據中使用這個編碼卻總提示編碼已存在。

    ??? 各位又是用的什么方法來處理的呢?你的方法有何優缺點,不妨一同討論一下。

    ??

    posted on 2006-09-01 15:20 黑子 閱讀(803) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 嫖丰满老熟妇AAAA片免费看| h视频免费高清在线观看| 久久精品免费观看国产| 国产综合亚洲专区在线| 深夜免费在线视频| 又色又污又黄无遮挡的免费视| 国产AV无码专区亚洲AV蜜芽| 国产最新凸凹视频免费| 日韩在线一区二区三区免费视频| 69xx免费观看视频| 中国亚洲呦女专区| 国产高清免费观看| 四虎影视久久久免费| 亚洲国产精品自在拍在线播放| 国产福利免费视频| 久久久久亚洲精品影视| 亚洲一区二区三区免费视频| 亚洲精品456人成在线| 国产男女性潮高清免费网站| 一级午夜a毛片免费视频| 亚洲AV无码一区二区二三区入口 | 亚洲国产成人久久精品软件| 国产又大又长又粗又硬的免费视频 | 亚洲欧洲免费无码| 亚洲人成无码网WWW| 久久青草免费91线频观看不卡| 亚洲图片中文字幕| jjzz亚洲亚洲女人| 久热免费在线视频| 亚洲国产欧美日韩精品一区二区三区| 亚洲AV无码乱码在线观看牲色| 成人性生交大片免费看中文| 亚洲一区二区三区播放在线| 亚洲精品成人久久久| 无码人妻一区二区三区免费n鬼沢| 亚洲sss综合天堂久久久| 亚洲v国产v天堂a无码久久| 免费在线看黄网站| 小说区亚洲自拍另类| 亚洲人成网站影音先锋播放| 国产免费人成视频在线观看 |