mysqlscript文档翻译
来源:互联网 发布:少女前线枪娘数据大全 编辑:程序博客网 时间:2024/06/08 09:45
根据自己的需要有选择的翻译官方文档
http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-mysqlscript-delimiter.html
根据sql脚本的内容,你需要控制脚本的分隔符。一个最常见的例子是当你在存储过程中有一个多语句的过程,
使用默认的;分隔符,执行时就会报错(我就遇到了这个错误)
比如,以下的存储过程:
CREATE PROCEDURE test_routine()
BEGIN
SELECT name FROM TestTable ORDER BY name;
SELECT COUNT(name) FROM TestTable;
END
这个过程实际上执行的时候是一个语句,然而 ,如果用;分隔符,sqlscript就会认为它是两个语句,
第一个语句是
CREATE PROCEDURE test_routine()
BEGIN
SELECT name FROM TestTable ORDER BY name;
执行时会报语法错误,为了解决这个问题mysqlscript支持使用不同的分隔符通过使用delimiter属性。
比如,你可以设置delimiter为“??”,这样,上面的语句就不会报错。
以下是官网的例子:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using MySql.Data;using MySql.Data.MySqlClient;namespace ConsoleApplication8{ class Program { static void Main(string[] args) { string connStr = "server=localhost;user=root;database=TestDB;port=3306;password=******;"; MySqlConnection conn = new MySqlConnection(connStr); try { Console.WriteLine("Connecting to MySQL..."); conn.Open(); string sql = "DROP PROCEDURE IF EXISTS test_routine??" + "CREATE PROCEDURE test_routine() " + "BEGIN " + "SELECT name FROM TestTable ORDER BY name;" + "SELECT COUNT(name) FROM TestTable;" + "END??" + "CALL test_routine()"; MySqlScript script = new MySqlScript(conn); script.Query = sql; script.Delimiter = "??"; int count = script.Execute(); Console.WriteLine("Executed " + count + " statement(s)"); script.Delimiter = ";"; Console.WriteLine("Delimiter: " + script.Delimiter); Console.WriteLine("Query: " + script.Query); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } conn.Close(); Console.WriteLine("Done."); } }}
以下是个人的理解:
当使用到mysqlscript时,可以直接在sql文件里这样写
DELIMITER ??
........
BEGIN
....
END??
DELIMITER ;
也是一种解决办法
在实际使用中sql脚本文件可能会比较长,情况复杂,具体使用时,mysqlscript可能不够灵活,需要重写,或者不用mysqlscript
自己处理文件,自己执行。因为mysqlscript遇到错误就会停止执行,没有更丰富的选项以及日志功能,所以可能还是需要自己来操作
sql文件。
- mysqlscript文档翻译
- 翻译文档
- 文档翻译
- MongoDB文档翻译-引言-文档
- GSM0222 文档的翻译
- Tomcat文档翻译
- Tomcat文档翻译二
- OpenKM 文档翻译
- dhtmlxtree文档翻译
- NHibernate文档翻译
- dhtmlxtree文档翻译
- dhtmlxtree文档翻译(转)
- WinPcap文档翻译第一章
- 预备翻译C99文档
- Squirrel 文档翻译( Introduction )
- Squirrel 文档翻译( 目录)
- Squirrel 文档翻译(Statements)
- Squirrel 文档翻译( Class )
- 仿支付宝“数字增长动画”
- Android-->RatingBar自定义大小,自定义样式(图片)
- Android初识-JSON字符串解析详解
- 打造开发神器—Android Studio上的常用5个插件介绍
- OTA打包工具
- mysqlscript文档翻译
- js数组组合
- redis-高级应用
- java实现选择排序算法,sort
- oracle union 和union all 的区别
- GridBagLayout布局管理器学习总结
- QuickSort排序
- $(document).ready(function() {});写与不写有什么区别 与$(function() {});区别
- Android事件分发