{"id":1012,"date":"2017-10-28T17:03:43","date_gmt":"2017-10-28T09:03:43","guid":{"rendered":"http:\/\/www.5x44.cn\/?p=1012"},"modified":"2017-10-28T17:03:43","modified_gmt":"2017-10-28T09:03:43","slug":"mysql5-7-%e6%9c%ac%e5%9c%b0%e5%8f%98%e9%87%8f%e5%8c%ba%e5%9f%9f%e5%92%8c%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/www.5x44.cn\/?p=1012","title":{"rendered":"MySql5.7 \u672c\u5730\u53d8\u91cf\u533a\u57df\u548c\u89e3\u51b3\u65b9\u6cd5"},"content":{"rendered":"<p>\u672c\u5730\u53d8\u91cf\u7684\u533a\u57df\u662f\u5176\u6240\u5b9a\u4e49\u7684BEGIN &#8230; END\u5757\u4e2d\u3002\u672c\u5730\u53d8\u91cf\u53ef\u4ee5\u5728\u5176\u5d4c\u5957\u7684\u5185\u5c42\u88ab\u7d22\u5f15\u5230\uff0c\u9664\u975e\u5185\u5c42\u4e5f\u5b9a\u4e49\u4e86\u540c\u540d\u7684\u53d8\u91cf\u3002<\/p>\n<p>\u56e0\u4e3a\u672c\u5730\u53d8\u91cf\u4ec5\u5728\u5b58\u50a8\u7684\u7a0b\u5e8f\u6267\u884c\u5176\u95f4\u5b58\u5728\uff0c<strong>\u4e0d\u80fd\u5728\u7a0b\u5e8f\u7684\u9884\u5904\u7406\u58f0\u660e\u9636\u6bb5\u7d22\u5f15\u5230\u5b83\u4eec<\/strong>\u3002\u9884\u5904\u7406\u58f0\u660e\u533a\u57df\u662f\u5f53\u524d\u4f1a\u8bdd\uff0c\u800c\u4e0d\u662f\u88ab\u5b58\u50a8\u7684\u7a0b\u5e8f\uff0c\u6240\u4ee5\u8fd9\u4e2a\u58f0\u660e\u80fd\u5728\u7a0b\u5e8f\u7ed3\u675f\u540e\u88ab\u6267\u884c\uff0c\u5728\u8fd9\u4e2a\u9636\u6bb5\u7684\u53d8\u91cf\u5e76\u4e0d\u5728\u5176\u4f5c\u7528\u57df\u3002\uff08Prepared statement scope is the current session, not the stored program, so the statement could be executed after the program ends, at which point the variables would no longer be in scope. \uff09\u4f8b\u5982\uff0cSELECT &#8230; INTO <strong><em>local_var<\/em><\/strong>\u4e0d\u80fd\u7528\u4e8e\u9884\u5904\u7406\u9636\u6bb5\u3002\u8fd9\u4e2a\u9650\u5236\u540c\u6837\u7528\u4e8e\u5b58\u50a8\u8fc7\u7a0b\u548c\u51fd\u6570\u7684\u53c2\u6570\u3002\uff08See <a class=\"xref\" title=\"13.5.1\u00a0PREPARE Syntax\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/prepare.html\">Section\u00a013.5.1, \u201cPREPARE Syntax\u201d<\/a>.\uff09<\/p>\n<p>\u672c\u5730\u53d8\u91cf\u4e0d\u80fd\u540c\u540d\u3002\u5982\u679c\u4e00\u4e2aSQL\u58f0\u660e\uff0c\u5982SELECT INTO\u58f0\u660e\uff0c\u5305\u542b\u4e86\u4e00\u4e2a\u5217\u548c\u4e00\u4e2a\u540c\u540d\u7684\u672c\u5730\u53d8\u91cf\uff0cMYSQL\u4f1a\u89e3\u91ca\u6210\u53d8\u91cf\u7684\u540d\u5b57\u3002\u8003\u8651\u4e0b\u9762\u7684\u8fc7\u7a0b\u5b9a\u4e49\uff1a<\/p>\n<pre class=\"programlisting line-numbers language-sql\"><code class=\" language-sql\"><span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">PROCEDURE<\/span> sp1 <span class=\"token punctuation\">(<\/span>x <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token keyword\">BEGIN<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> xname <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">DEFAULT<\/span> <span class=\"token string\">'bob'<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> newname <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> <span class=\"token keyword\">xid<\/span> <span class=\"token datatype\">INT<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n  <span class=\"token keyword\">SELECT<\/span> xname<span class=\"token punctuation\">,<\/span> id <span class=\"token keyword\">INTO<\/span> newname<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">xid<\/span>\r\n    <span class=\"token keyword\">FROM<\/span> table1 <span class=\"token keyword\">WHERE<\/span> xname <span class=\"token operator\">=<\/span> xname<span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">SELECT<\/span> newname<span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">END<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p>MYSQL\u5728SELECT\u8bed\u53e5\u4e2d\u89e3\u91caxname\u4f5c\u4e3a\u53d8\u91cf\uff0c\u800c\u4e0d\u662f\u5217\u540d\u3002\u56e0\u6b64\u5728\u8c03\u7528sp1()\u8fd9\u4e2a\u8fc7\u7a0b\u65f6newname\u8fd4\u56de&#8217;bob&#8217;\uff0c\u800c\u4e0d\u662ftable1.xname\u5217\u3002<\/p>\n<p>\u7c7b\u4f3c\u7684\uff0c\u5728\u6e38\u6807\u5b9a\u4e49\u4e2d\uff08\u5305\u542bSELECT\u6307\u5411xname\u58f0\u660e\u7684\u8fc7\u7a0b\uff09\u4e2d\u3002MYSQL\u89e3\u91ca\u4e3a\u53d8\u91cf\u540d\uff0c\u800c\u4e0d\u662f\u5217\u540d\u3002<\/p>\n<pre class=\"programlisting line-numbers  language-sql\"><code class=\" language-sql\"><span class=\"token keyword\">CREATE<\/span> <span class=\"token keyword\">PROCEDURE<\/span> sp2 <span class=\"token punctuation\">(<\/span>x <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token keyword\">BEGIN<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> xname <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">DEFAULT<\/span> <span class=\"token string\">'bob'<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> newname <span class=\"token datatype\">VARCHAR<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> <span class=\"token keyword\">xid<\/span> <span class=\"token datatype\">INT<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> done <span class=\"token datatype\">TINYINT<\/span> <span class=\"token keyword\">DEFAULT<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> cur1 <span class=\"token keyword\">CURSOR<\/span> <span class=\"token keyword\">FOR<\/span> <span class=\"token keyword\">SELECT<\/span> xname<span class=\"token punctuation\">,<\/span> id <span class=\"token keyword\">FROM<\/span> table1<span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">DECLARE<\/span> <span class=\"token keyword\">CONTINUE<\/span> <span class=\"token keyword\">HANDLER<\/span> <span class=\"token keyword\">FOR<\/span> <span class=\"token operator\">NOT<\/span> <span class=\"token keyword\">FOUND<\/span> <span class=\"token keyword\">SET<\/span> done <span class=\"token operator\">=<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n  <span class=\"token keyword\">OPEN<\/span> cur1<span class=\"token punctuation\">;<\/span>\r\n  read_loop: <span class=\"token keyword\">LOOP<\/span>\r\n    <span class=\"token keyword\">FETCH<\/span> <span class=\"token keyword\">FROM<\/span> cur1 <span class=\"token keyword\">INTO<\/span> newname<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">xid<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">IF<\/span> done <span class=\"token keyword\">THEN<\/span> <span class=\"token keyword\">LEAVE<\/span> read_loop<span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">IF<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">SELECT<\/span> newname<span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">END<\/span> <span class=\"token keyword\">LOOP<\/span><span class=\"token punctuation\">;<\/span>\r\n  <span class=\"token keyword\">CLOSE<\/span> cur1<span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">END<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u5730\u53d8\u91cf\u7684\u533a\u57df\u662f\u5176\u6240\u5b9a\u4e49\u7684BEGIN &#8230; END\u5757\u4e2d\u3002\u672c\u5730\u53d8\u91cf\u53ef\u4ee5\u5728\u5176\u5d4c\u5957\u7684\u5185\u5c42\u88ab\u7d22\u5f15\u5230\uff0c\u9664\u975e\u5185\u5c42\u4e5f\u5b9a\u4e49\u4e86\u540c\u540d\u7684\u53d8\u91cf\u3002 \u56e0\u4e3a\u672c\u5730\u53d8\u91cf\u4ec5\u5728\u5b58\u50a8\u7684\u7a0b\u5e8f\u6267&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.5x44.cn\/?p=1012\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[],"class_list":["post-1012","post","type-post","status-publish","format-standard","hentry","category-mysql"],"_links":{"self":[{"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/posts\/1012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1012"}],"version-history":[{"count":3,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/posts\/1012\/revisions"}],"predecessor-version":[{"id":1015,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=\/wp\/v2\/posts\/1012\/revisions\/1015"}],"wp:attachment":[{"href":"https:\/\/www.5x44.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.5x44.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}