{"id":260,"date":"2016-12-11T20:41:05","date_gmt":"2016-12-11T12:41:05","guid":{"rendered":"https:\/\/blog.freesilo.com\/?p=260"},"modified":"2016-12-11T20:41:05","modified_gmt":"2016-12-11T12:41:05","slug":"%e5%9c%a8mysql%e4%b8%ad%e5%88%9b%e5%bb%ba%e5%ae%9e%e7%8e%b0%e8%87%aa%e5%a2%9e%e7%9a%84%e5%ba%8f%e5%88%97%ef%bc%88sequence%ef%bc%89","status":"publish","type":"post","link":"https:\/\/freesilo.com\/?p=260","title":{"rendered":"\u5728MySQL\u4e2d\u521b\u5efa\u5b9e\u73b0\u81ea\u589e\u7684\u5e8f\u5217\uff08Sequence\uff09"},"content":{"rendered":"<div class=\"Blog_wz1\">\n<p>\u7531\u4e8emysql\u548coracle\u4e0d\u592a\u4e00\u6837\uff0c\u4e0d\u652f\u6301\u76f4\u63a5\u7684sequence\uff0c\u6240\u4ee5\u9700\u8981\u521b\u5efa\u4e00\u5f20table\u6765\u6a21\u62dfsequence\u7684\u529f\u80fd\uff0c\u7406\u7531sql\u8bed\u53e5\u5982\u4e0b\uff1a<br \/>\n\u7b2c\u4e00\u6b65\uff1a\u521b\u5efa&#8211;Sequence \u7ba1\u7406\u8868<\/p>\n<div class=\"line number1 index0 alt2\">DROP TABLE IF EXISTS sequence;<\/div>\n<div class=\"line number2 index1 alt1\">CREATE TABLE sequence (<\/div>\n<div class=\"line number3 index2 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0name VARCHAR(50) NOT NULL,<\/div>\n<div class=\"line number4 index3 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0current_value INT NOT NULL,<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0increment INT NOT NULL DEFAULT 1,<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0PRIMARY KEY (name)<\/div>\n<div class=\"line number7 index6 alt2\">) ENGINE=InnoDB;<\/div>\n<div class=\"jb51code\">\n<div>\n<div id=\"highlighter_780949\" class=\"syntaxhighlighter sql\">\n<div class=\"toolbar\"><a class=\"toolbar_item command_help help\" href=\"http:\/\/www.jb51.net\/article\/76124.htm#\">?<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u7b2c\u4e8c\u6b65\uff1a\u521b\u5efa&#8211;\u53d6\u5f53\u524d\u503c\u7684\u51fd\u6570<\/p>\n<div class=\"line number1 index0 alt2\">DROP FUNCTION IF EXISTS currval;<\/div>\n<div class=\"line number2 index1 alt1\">DELIMITER $<\/div>\n<div class=\"line number3 index2 alt2\">CREATE FUNCTION currval (seq_name VARCHAR(50))<\/div>\n<div class=\"line number4 index3 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURNS INTEGER<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0LANGUAGE SQL<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0DETERMINISTIC<\/div>\n<div class=\"line number7 index6 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0CONTAINS SQL<\/div>\n<div class=\"line number8 index7 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0SQL SECURITY DEFINER<\/div>\n<div class=\"line number9 index8 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0COMMENT &#8221;<\/div>\n<div class=\"line number10 index9 alt1\">BEGIN<\/div>\n<div class=\"line number11 index10 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0DECLARE value INTEGER;<\/div>\n<div class=\"line number12 index11 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0SET value = 0;<\/div>\n<div class=\"line number13 index12 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0SELECT current_value INTO value<\/div>\n<div class=\"line number14 index13 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FROM sequence<\/div>\n<div class=\"line number15 index14 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WHERE name = seq_name;<\/div>\n<div class=\"line number16 index15 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN value;<\/div>\n<div class=\"line number17 index16 alt2\">END<\/div>\n<div class=\"line number18 index17 alt1\">$<\/div>\n<div class=\"line number19 index18 alt2\">DELIMITER ;<\/div>\n<div class=\"jb51code\"><\/div>\n<p>\u7b2c\u4e09\u6b65\uff1a\u521b\u5efa&#8211;\u53d6\u4e0b\u4e00\u4e2a\u503c\u7684\u51fd\u6570<\/p>\n<div class=\"line number1 index0 alt2\">DROP FUNCTION IF EXISTS nextval;<\/div>\n<div class=\"line number2 index1 alt1\">DELIMITER $<\/div>\n<div class=\"line number3 index2 alt2\">CREATE FUNCTION nextval (seq_name VARCHAR(50))<\/div>\n<div class=\"line number4 index3 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURNS INTEGER<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0LANGUAGE SQL<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0DETERMINISTIC<\/div>\n<div class=\"line number7 index6 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0CONTAINS SQL<\/div>\n<div class=\"line number8 index7 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0SQL SECURITY DEFINER<\/div>\n<div class=\"line number9 index8 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0COMMENT &#8221;<\/div>\n<div class=\"line number10 index9 alt1\">BEGIN<\/div>\n<div class=\"line number11 index10 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0UPDATE sequence<\/div>\n<div class=\"line number12 index11 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SET current_value = current_value + increment<\/div>\n<div class=\"line number13 index12 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WHERE name = seq_name;<\/div>\n<div class=\"line number14 index13 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN currval(seq_name);<\/div>\n<div class=\"line number15 index14 alt2\">END<\/div>\n<div class=\"line number16 index15 alt1\">$<\/div>\n<div class=\"line number17 index16 alt2\">DELIMITER ;<\/div>\n<p>\u7b2c\u56db\u6b65\uff1a\u521b\u5efa&#8211;\u66f4\u65b0\u5f53\u524d\u503c\u7684\u51fd\u6570<\/p>\n<div class=\"line number1 index0 alt2\">DROP FUNCTION IF EXISTS setval;<\/div>\n<div class=\"line number2 index1 alt1\">DELIMITER $<\/div>\n<div class=\"line number3 index2 alt2\">CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER)<\/div>\n<div class=\"line number4 index3 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURNS INTEGER<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0LANGUAGE SQL<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0DETERMINISTIC<\/div>\n<div class=\"line number7 index6 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0CONTAINS SQL<\/div>\n<div class=\"line number8 index7 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0SQL SECURITY DEFINER<\/div>\n<div class=\"line number9 index8 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0COMMENT &#8221;<\/div>\n<div class=\"line number10 index9 alt1\">BEGIN<\/div>\n<div class=\"line number11 index10 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0UPDATE sequence<\/div>\n<div class=\"line number12 index11 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SET current_value = value<\/div>\n<div class=\"line number13 index12 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0WHERE name = seq_name;<\/div>\n<div class=\"line number14 index13 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN currval(seq_name);<\/div>\n<div class=\"line number15 index14 alt2\">END<\/div>\n<div class=\"line number16 index15 alt1\">$<\/div>\n<div class=\"line number17 index16 alt2\">DELIMITER ;<\/div>\n<div class=\"jb51code\"><\/div>\n<p>\u7b2c\u4e94\u6b65\uff1a\u6d4b\u8bd5\u51fd\u6570\u529f\u80fd<br \/>\n\u5f53\u4e0a\u8ff0\u56db\u6b65\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u7528\u4ee5\u4e0b\u6570\u636e\u8bbe\u7f6e\u9700\u8981\u521b\u5efa\u7684sequence\u540d\u79f0\u4ee5\u53ca\u8bbe\u7f6e\u521d\u59cb\u503c\u548c\u83b7\u53d6\u5f53\u524d\u503c\u548c\u4e0b\u4e00\u4e2a\u503c\u3002<\/p>\n<ul>\n<li>INSERT INTO sequence VALUES (&#8216;TestSeq&#8217;, 0, 1);&#8212;-\u6dfb\u52a0\u4e00\u4e2asequence\u540d\u79f0\u548c\u521d\u59cb\u503c\uff0c\u4ee5\u53ca\u81ea\u589e\u5e45\u5ea6<\/li>\n<li>SELECT SETVAL(&#8216;TestSeq&#8217;, 10);&#8212;\u8bbe\u7f6e\u6307\u5b9asequence\u7684\u521d\u59cb\u503c<\/li>\n<li>SELECT CURRVAL(&#8216;TestSeq&#8217;);&#8211;\u67e5\u8be2\u6307\u5b9asequence\u7684\u5f53\u524d\u503c<\/li>\n<li>SELECT NEXTVAL(&#8216;TestSeq&#8217;);&#8211;\u67e5\u8be2\u6307\u5b9asequence\u7684\u4e0b\u4e00\u4e2a\u503c<\/li>\n<\/ul>\n<p>\u5728java\u4ee3\u7801\u4e2d\uff0c\u53ef\u76f4\u63a5\u521b\u5efasql\u8bed\u53e5\u67e5\u8be2\u4e0b\u4e00\u4e2a\u503c\uff0c\u8fd9\u6837\u5c31\u89e3\u51b3\u4e86\u6d41\u6c34\u53f7\u552f\u4e00\u7684\u95ee\u9898\u3002<br \/>\n\u8d34\u51fa\u90e8\u5206\u4ee3\u7801\uff08\u5df2\u6d4b\u8bd5\u901a\u8fc7\uff09<\/p>\n<div class=\"line number1 index0 alt2\">public void testGetSequence() {<\/div>\n<div class=\"line number2 index1 alt1\">\u00a0\u00a0Connection conn = JDBCUtils.getConnection(url, userName, password);<\/div>\n<div class=\"line number3 index2 alt2\">\u00a0\u00a0String sql = &#8220;SELECT CURRVAL(&#8216;TestSeq&#8217;);&#8221;;<\/div>\n<div class=\"line number4 index3 alt1\">\u00a0\u00a0PreparedStatement ptmt = null;<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0ResultSet rs = null;<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0try {<\/div>\n<div class=\"line number7 index6 alt2\">\u00a0\u00a0\u00a0\u00a0ptmt = conn.prepareStatement(sql);<\/div>\n<div class=\"line number8 index7 alt1\">\u00a0\u00a0\u00a0\u00a0rs = ptmt.executeQuery();<\/div>\n<div class=\"line number9 index8 alt2\">\u00a0\u00a0\u00a0\u00a0int count = 0;<\/div>\n<div class=\"line number10 index9 alt1\">\u00a0\u00a0\u00a0\u00a0while (rs.next()) {<\/div>\n<div class=\"line number11 index10 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0count = rs.getInt(1);<\/div>\n<div class=\"line number12 index11 alt1\">\u00a0\u00a0\u00a0\u00a0}<\/div>\n<div class=\"line number13 index12 alt2\">\u00a0\u00a0\u00a0\u00a0System.out.println(count);<\/div>\n<div class=\"line number14 index13 alt1\">\u00a0\u00a0} catch (SQLException e) {<\/div>\n<div class=\"line number15 index14 alt2\">\u00a0\u00a0\u00a0\u00a0e.printStackTrace();<\/div>\n<div class=\"line number16 index15 alt1\">\u00a0\u00a0} finally {<\/div>\n<div class=\"line number17 index16 alt2\">\u00a0\u00a0\u00a0\u00a0JDBCUtils.close(rs, ptmt, conn);<\/div>\n<div class=\"line number18 index17 alt1\">\u00a0\u00a0}<\/div>\n<div class=\"line number19 index18 alt2\">\n<p>}<\/p>\n<p>ps\uff1a\u5728\u5e94\u7528\u4e2d\uff0c\u8fd8\u6709\u4e00\u79cd\u7528java\u4ee3\u7801\u53bb\u5b9e\u73b0\u6a21\u62df\u81ea\u589esequence\u7684\u65b9\u5f0f\uff0c\u5177\u4f53\u601d\u8def\u662f\u521b\u5efa\u4e00\u5f20\u5b58\u653esequence\u7684table\uff0c\u7136\u540e\u901a\u8fc7java\u8c03\u7528sql\u8bed\u53e5\u53bb\u67e5\u8be2\u548c\u4fee\u6539\u8fd9\u4e2atable\u4e2d\u6307\u5b9asequence\u540d\u79f0\u7684\u503c\uff0c\u8fd9\u79cd\u65b9\u5f0f\u8bf7\u52a0\u4e0asynchronized\u3002\u5177\u4f53\u4ee3\u7801\u8fd9\u91cc\u5c31\u4e0d\u4e0a\u4f20\u4e86\uff0c\u56e0\u4e3a\u5b9e\u73b0\u4e86\uff0c\u672a\u53bb\u6d4b\u8bd5\u8fc7\u3002<\/p>\n<\/div>\n<p>\u5728 oracle \u4e2d\uff0c sequence \u63d0\u4f9b\u591a\u8868\u591a\u5b57\u6bb5\u53ef\u5171\u7528\u4e00\u4e2a\u4e0d\u91cd\u590d\u503c\u3002 Mysql \u4e2d\u5b58\u5728\u81ea\u589e\u5217\uff0c\u57fa\u672c\u53ef\u4ee5\u6ee1\u8db3 PK \u7684\u8981\u6c42\u3002\u4f46\u81ea\u589e\u5217\u5b58\u5728\u9650\u5236\uff1a<\/p>\n<p>a. \u53ea\u80fd\u7528\u4e8e\u8868\u4e2d\u7684\u4e00\u4e2a\u5b57\u6bb5\uff0c\u4e00\u5f20\u4e0d\u80fd\u540c\u65f6\u5b58\u5728\u4e24\u4e2a\u4ee5\u4e0a\u7684\u81ea\u589e\u5217 ;<\/p>\n<p>b. \u81ea\u589e\u5217\u5fc5\u987b\u88ab\u5b9a\u4e49\u4e3a key \uff08 PK \u6216 FK \uff09 ;<\/p>\n<p>c. \u81ea\u589e\u5217\u4e0d\u80fd\u88ab\u591a\u4e2a\u8868\u5171\u7528 ;<\/p>\n<p>d. \u5f53 insert \u8bed\u53e5\u4e0d\u5305\u62ec\u81ea\u589e\u5b57\u6bb5\u6216\u5c06\u5176\u503c\u8bbe\u7f6e\u4e3a NULL \u65f6\uff0c\u8be5\u503c\u4f1a\u81ea\u52a8\u586b\u4e0a\u3002<\/p>\n<p>\u5728\u4e0d\u8981\u6c42\u5b57\u6bb5\u987a\u5e8f\u9012\u589e\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u5728 Mysql \u4e2d\u5b9e\u73b0\u5e8f\u5217\uff0c\u518d\u6765\u770b\u4e0b\u9762\u4e00\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<div class=\"line number1 index0 alt2\">DROP TABLE IF EXISTS sequence;<\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\">&#8212; \u5efasequence\u8868\uff0c\u6307\u5b9aseq\u5217\u4e3a\u65e0\u7b26\u53f7\u5927\u6574\u578b\uff0c\u53ef\u652f\u6301\u65e0\u7b26\u53f7\u503c\uff1a0(default)\u523018446744073709551615\uff080\u52302^64\u20131\uff09\u3002<\/div>\n<div class=\"line number4 index3 alt1\">CREATE TABLE sequence (<\/div>\n<div class=\"line number5 index4 alt2\">\u00a0\u00a0\u00a0name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VARCHAR(50) NOT NULL,<\/div>\n<div class=\"line number6 index5 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0current_value\u00a0\u00a0 BIGINT UNSIGNED NOT NULL DEFAULT 0,<\/div>\n<div class=\"line number7 index6 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0increment\u00a0\u00a0\u00a0\u00a0 INT NOT NULL DEFAULT 1,<\/div>\n<div class=\"line number8 index7 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0PRIMARY KEY (name)\u00a0 &#8212; \u4e0d\u5141\u8bb8\u91cd\u590dseq\u7684\u5b58\u5728\u3002<\/div>\n<div class=\"line number9 index8 alt2\">) ENGINE=InnoDB;<\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><\/div>\n<div class=\"line number12 index11 alt1\">DELIMITER \/<\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\">DROP FUNCTION IF EXISTS currval \/<\/div>\n<div class=\"line number15 index14 alt2\"><\/div>\n<div class=\"line number16 index15 alt1\">CREATE FUNCTION currval(seq_name VARCHAR(50))<\/div>\n<div class=\"line number17 index16 alt2\">RETURNS BIGINT<\/div>\n<div class=\"line number18 index17 alt1\">BEGIN<\/div>\n<div class=\"line number19 index18 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0DECLARE value BIGINT;<\/div>\n<div class=\"line number20 index19 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0SELECT current_value INTO value<\/div>\n<div class=\"line number21 index20 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0FROM sequence<\/div>\n<div class=\"line number22 index21 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0WHERE upper(name) = upper(seq_name); &#8212; \u5927\u5c0f\u5199\u4e0d\u533a\u5206.<\/div>\n<div class=\"line number23 index22 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN value;<\/div>\n<div class=\"line number24 index23 alt1\">END;<\/div>\n<div class=\"line number25 index24 alt2\">\/<\/div>\n<div class=\"line number26 index25 alt1\"><\/div>\n<div class=\"line number27 index26 alt2\">DELIMITER ;<\/div>\n<div class=\"line number28 index27 alt1\"><\/div>\n<div class=\"line number29 index28 alt2\"><\/div>\n<div class=\"line number30 index29 alt1\">DELIMITER \/<\/div>\n<div class=\"line number31 index30 alt2\"><\/div>\n<div class=\"line number32 index31 alt1\">DROP FUNCTION IF EXISTS nextval \/<\/div>\n<div class=\"line number33 index32 alt2\"><\/div>\n<div class=\"line number34 index33 alt1\">CREATE FUNCTION nextval (seq_name VARCHAR(50))<\/div>\n<div class=\"line number35 index34 alt2\">RETURNS BIGINT<\/div>\n<div class=\"line number36 index35 alt1\">BEGIN<\/div>\n<div class=\"line number37 index36 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0DECLARE value BIGINT;<\/div>\n<div class=\"line number38 index37 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0UPDATE sequence<\/div>\n<div class=\"line number39 index38 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0SET current_value = current_value + increment<\/div>\n<div class=\"line number40 index39 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0WHERE upper(name) = upper(seq_name);<\/div>\n<div class=\"line number41 index40 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN currval(seq_name);<\/div>\n<div class=\"line number42 index41 alt1\">END;<\/div>\n<div class=\"line number43 index42 alt2\">\/<\/div>\n<div class=\"line number44 index43 alt1\"><\/div>\n<div class=\"line number45 index44 alt2\">DELIMITER ;<\/div>\n<div class=\"line number46 index45 alt1\"><\/div>\n<div class=\"line number47 index46 alt2\">DELIMITER \/<\/div>\n<div class=\"line number48 index47 alt1\"><\/div>\n<div class=\"line number49 index48 alt2\">DROP FUNCTION IF EXISTS setval \/<\/div>\n<div class=\"line number50 index49 alt1\"><\/div>\n<div class=\"line number51 index50 alt2\">CREATE FUNCTION setval (seq_name VARCHAR(50), value BIGINT)<\/div>\n<div class=\"line number52 index51 alt1\">RETURNS BIGINT<\/div>\n<div class=\"line number53 index52 alt2\">BEGIN<\/div>\n<div class=\"line number54 index53 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0UPDATE sequence<\/div>\n<div class=\"line number55 index54 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0SET current_value = value<\/div>\n<div class=\"line number56 index55 alt1\">\u00a0\u00a0\u00a0\u00a0\u00a0WHERE upper(name) = upper(seq_name);<\/div>\n<div class=\"line number57 index56 alt2\">\u00a0\u00a0\u00a0\u00a0\u00a0RETURN currval(seq_name);<\/div>\n<div class=\"line number58 index57 alt1\">END;<\/div>\n<div class=\"line number59 index58 alt2\">\/<\/div>\n<div class=\"line number60 index59 alt1\"><\/div>\n<div class=\"line number61 index60 alt2\">DELIMITER ;<\/div>\n<div class=\"jb51code\"><\/div>\n<p>\u5728 SQL \u4e2d\u4f7f\u7528\u5e8f\u5217\uff1a<br \/>\n\u521b\u5efa\u5e8f\u5217\uff0c\u5f80sequence\u8868\u63d2\u5165\u503c\u5373\u53ef\uff1a<br \/>\nmysql&gt; insert into sequence set name=&#8217;myseq&#8217;;<\/p>\n<div class=\"jb51code\"><\/div>\n<p>\u67e5\u770b\u5f53\u524d\u5df2\u5efa\u5e8f\u5217\uff1a<br \/>\nmysql&gt; select * from sequence;<\/p>\n<div class=\"line number1 index0 alt2\">+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+<\/div>\n<div class=\"line number2 index1 alt1\">| name | current_value | increment |<\/div>\n<div class=\"line number3 index2 alt2\">+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+<\/div>\n<div class=\"line number4 index3 alt1\">| myseq |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 |\u00a0\u00a0\u00a0\u00a0 1 |<\/div>\n<div class=\"line number5 index4 alt2\">+&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+<\/div>\n<div class=\"line number6 index5 alt1\">1 row in set (0.00 sec)<\/div>\n<div class=\"jb51code\"><\/div>\n<p>\u83b7\u5f97\u5e8f\u5217\u7684\u4e0b\u4e00\u4e2a\u503c\uff0c\u7b2c\u4e00\u6b21\u4f7f\u7528\uff0c\u56e0\u6b64\u503c\u4e3a1\uff1a<\/p>\n<p>mysql&gt; select nextval(&#8216;myseq&#8217;);<\/p>\n<div class=\"line number1 index0 alt2\">+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<\/div>\n<div class=\"line number2 index1 alt1\">| nextval(&#8216;myseq&#8217;) |<\/div>\n<div class=\"line number3 index2 alt2\">+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<\/div>\n<div class=\"line number4 index3 alt1\">|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1 |<\/div>\n<div class=\"line number5 index4 alt2\">+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+<\/div>\n<div class=\"line number6 index5 alt1\">1 row in set (0.00 sec)<\/div>\n<\/div>\n<div><\/div>\n<div class=\"Blog_con2_1 Blog_con3_2\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u7531\u4e8emysql\u548coracle\u4e0d\u592a\u4e00\u6837\uff0c\u4e0d\u652f\u6301\u76f4\u63a5\u7684sequence\uff0c\u6240\u4ee5\u9700\u8981\u521b\u5efa&#8230;<br \/><a class=\"read-more-button\" href=\"https:\/\/freesilo.com\/?p=260\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-mysql"],"_links":{"self":[{"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freesilo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=260"}],"version-history":[{"count":2,"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":285,"href":"https:\/\/freesilo.com\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions\/285"}],"wp:attachment":[{"href":"https:\/\/freesilo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freesilo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freesilo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}