Skynet

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

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks


                如果你不想使用mysql的自動遞增,但又想實現主鍵序列號的功能,可以使用下面的方法,通過函數用一張表去維護生成多個表的序列號,簡單又實用

          1.創建生成多個表的序列號的數據維護表

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

          2.插入幾條初始化數據

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

          3.創建函數以生成序列號

          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.測試

          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) 評論(1)  編輯  收藏 所屬分類: database

          Feedback

          # re: mysql 序列號生成器(轉)[未登錄] 2011-03-23 22:27 123
          發的vadgbhsgfbhnganb   回復  更多評論
            

          主站蜘蛛池模板: 纳雍县| 抚远县| 肃北| 宣城市| 桂林市| 运城市| 吴桥县| 卢湾区| 莎车县| 东丽区| 澎湖县| 卓尼县| 汉源县| 镇远县| 南岸区| 马关县| 三门县| 尚志市| 普安县| 江阴市| 康乐县| 沛县| 蕉岭县| 巴南区| 佛教| 鄢陵县| 元氏县| 金沙县| 平安县| 达尔| 朔州市| 康平县| 罗山县| 彭山县| 聂荣县| 双流县| 兴安县| 武陟县| 长沙县| 土默特左旗| 冕宁县|