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 劉凱毅 閱讀(3567) 評論(1)  編輯  收藏 所屬分類: database

          Feedback

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

          主站蜘蛛池模板: 宁河县| 溧阳市| 霍山县| 澄城县| 且末县| 龙口市| 库车县| 五大连池市| 宽甸| 姜堰市| 龙川县| 滦南县| 明星| 车致| 搜索| 乌审旗| 泰兴市| 天祝| 南投县| 家居| 夏河县| 鲁甸县| 兴国县| 额济纳旗| 沧源| 蓬溪县| 高平市| 临武县| 宁德市| 肃南| 宜兴市| 高清| 义乌市| 涿鹿县| 辽宁省| 灵台县| 漠河县| 化州市| 波密县| 庆安县| 丽水市|