Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks


                如果你不想使用mysql的自動(dòng)遞增,但又想實(shí)現(xiàn)主鍵序列號(hào)的功能,可以使用下面的方法,通過(guò)函數(shù)用一張表去維護(hù)生成多個(gè)表的序列號(hào),簡(jiǎn)單又實(shí)用

          1.創(chuàng)建生成多個(gè)表的序列號(hào)的數(shù)據(jù)維護(hù)表

          CREATE TABLE seq (
            name varchar(20) NOT NULL,
            val int(10) UNSIGNED NOT NULL,
            PRIMARY KEY  (name)
          ) ENGINE=MyISAM DEFAULT CHARSET=UTF-8

          2.插入幾條初始化數(shù)據(jù)

          INSERT INTO seq VALUES('one',100);
          INSERT INTO seq VALUES('two',1000);

          3.創(chuàng)建函數(shù)以生成序列號(hào)

          CREATE FUNCTION seq(seq_name char (20)) returns int
          begin
           UPDATE seq SET val=last_insert_id(val+1) WHERE name=seq_name;
           RETURN last_insert_id();
          end

          4.測(cè)試

          1. mysql> SELECT seq('one'),seq('two'),seq('one'),seq('one');
          2. +------------+------------+------------+------------+
          3. | seq('one') | seq('two') | seq('one') | seq('one') |
          4. +------------+------------+------------+------------+
          5. |        102 |       1002 |        103 |        104 |
          6. +------------+------------+------------+------------+
          7. 1 row IN SET (0.00 sec)




          整理 www.aygfsteel.com/Good-Game
          posted on 2009-11-10 15:51 劉凱毅 閱讀(3558) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): database

          Feedback

          # re: mysql 序列號(hào)生成器(轉(zhuǎn))[未登錄](méi) 2011-03-23 22:27 123
          發(fā)的vadgbhsgfbhnganb   回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 肃北| 沛县| 衡南县| 精河县| 方城县| 长岛县| 嘉鱼县| 正安县| 广汉市| 武汉市| 嘉定区| 朝阳市| 安平县| 文昌市| 大冶市| 南和县| 新蔡县| 涞水县| 济源市| 江城| 乐昌市| 三都| 文安县| 开封市| 工布江达县| 宁德市| 沙湾县| 区。| 新巴尔虎右旗| 丹棱县| 西乡县| 榆中县| 和平县| 宜宾县| 临高县| 仪征市| 方正县| 故城县| 盐源县| 临澧县| 沂水县|