怎么使用ResultSet.datagrid insertroww向mysql插入数据

如何使用Mysql脚本插入数据流到数据库内_百度知道
如何使用Mysql脚本插入数据流到数据库内
有文件读取获得的数据流.,请问如何将byte[]数据通过纯sql脚本插入到数据库.:0xffd8ffeffdbaa99a14efc?最终脚本中的这个字段值应该是类似这样的,转换后获得byte[]
set i=i+1,userPwd) values(50 do
insert into users(userId,i);s00' end:create procedure dowhile()
declare i int default 0,concat('
start transaction,123456)已经测试,创建并运行下面的存储过程可以循环添加数据,userN;
while i&lt
敢为兄台何所云?
其他类似问题
数据流的相关知识
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁mysql 插入数据失败防止自增长主键增长的方法
mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的?
或者说mysql插入数据失败,怎么能防止主键增长?
MYSQL不保证AUTO_INCREMENT依次增长(1,2,3,4,5),但是可以保证正向增长(1,3,5,9)所以,当你某次操作失败后,下次AUTO_INCREMENT就不是顺序的了。
innodb的自增是缓存在内存字典中的,分配方式是先预留,然后再插入的。所以插入失败不会回滚内存字典。让innodb识别到当前最大id的方法是重启server 更新AUTO_INCREMENT缓存,或者用alter table `表` AUTO_INCREMENT = 最大数; &
这种思路基本不实用,下面介绍一种方便的方法。
Mysql主键如果在insert插入时有值,将不使用自增。也就是说插入数据的时候只要自己把ID加上就按照插入的数进行自增了,这个数通过自己的逻辑判断代码来赋值,只要ID不重复就可以了。例如:
String sql = "insert ignore into mytable(id,number,opendate) values(?,?,?)";
new Object[] {id,number,opendate});
另外一个保证的方法就是每次插入前查询最大ID,然后加1再作为ID插入。
当然还有通过临时表的方式来保证最终插入的都是成功的,不过比较麻烦了。
===============================================================
Mysql主键插入时有值将不使用自增可用程序控制mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长用程序自由控制?
方法/步骤1Mysql主键如果在insert插入时有值,将不使用自增。也就是说插入数据的时候只要自己把ID加上就按照插入的数进行自增了,这个数通过自己的逻辑判断代码来赋值,只要ID不重复就可以了。例如:String sql = "insert ignore into mytable(id,number,opendate) values(?,?,?)";new Object[] {id,number,opendate});用程序控制输入的ID就做到可以自由控制了。
来自本人 Mysql主键插入时有值将不使用自增可用程序控制_百度经验&
阅读(...) 评论()页面导航:
→ 正文内容 命令行 导入sql
Mysql命令行导入sql数据
下面是在命令行下导入sql数据的方法,需要的朋友可以参考下。
我的个人实践是:phpmyadmin 导出 utf-8 的 insert 模式的 abc.sql ftp abc.sql 到服务器 ssh 到服务器 mysql -u abc -p use KKK(数据库名,如果没有就 create database KKK) set names 'utf8' source abc.sql 注意:我看到 set character set utf8; 的说法,那样不行,中文乱码。 1.首先在命令行控制台中打开mysql 或许命令的如下: mysql -u root -p database_name 然后或许会提示输入对应的密码 2.下面这条命令或许对你有用,当你想更换一个数据库的时候 mysql&use database_name 然后使用下面这个命令 mysql&source d:\datafilename.sql 当然你需要将文件所在的路径搞清楚,并且正确地使用了他 进入mysql 安装所在的目录的子目录bin. 输入执行导入sql的命令. 例如: 你的mysql 安装在 d:\mysql 步骤如下: 开始 -& 运行 -& 输入CMD D: cd mysql\bin mysql -u root -p123456 test &d:\a.sql 其中 root 为你的mysql管理员用户名, 123456 为密码 test为数据库名称 d:\a.sql 为备份下来的数据文件所在位置. 如果是Windows的话,从命令提示符下到MYSQL文件目录中的Bin文件夹下,执行命令 mysql -u root -p databasename & db.sql 其中root是你MYSQL的用户名,databasename是你数据库的名称,而db.sql你是的文件.注意你必须把db.sql放到bin文件夹下才可以.当然文件的位置可以换. 如果是LINUX的话,直接输入 mysql databasename & db.sql
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','','','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句&show variables like 'character%'; 来查看当前数据库的相关编码集。
从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、results、server 、system。其中与服务器端相关:database、server、system(永远无法修改,就是utf-8);与客户端相关:connection、client、results 。
了解了上面的信息我们来分析下乱码的原因,问题出在了当前的 CMD 客户端窗口,因为当前的 CMD 客户端输入采用 GBK 编码,而数据库的编码格式为 UTF-8,编码不一致导致了乱码产生。而当前 CMD 客户端的编码格式无法修改,所以只能修改&connection、 client、results 的编码集来告知服务器端当前插入的数据采用 GBK 编码,而服务器的数据库虽然是采用 UTF-8 编码,但却可以识别通知服务器端的 GBK 编码数据并将其自动转换为 UTF-8 进行存储。可以使用如下语句来快速设置与客户端相关的编码集:
设置完成后即可解决客户端插入数据或显示数据的乱码问题了,但我们马上会发现这种形式的设置只会在当前窗口有效,当窗口关闭后重新打开 CMD 客户端的时候又会出现乱码问题;那么,如何进行一个一劳永逸的设置呢?在 MySQL 的安装目录下有一个&my.ini 配置文件,通过修改这个配置文件可以一劳永逸的解决乱码问题。在这个配置文件中&[mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。默认配置如下:
default-character-set=utf8
character-set-server=utf8
这时只需要将下的默认编码&default-character-set=utf8 改为&default-character-set=gbk ,重新启动 MySQL 服务即可。
阅读(...) 评论()Mysql字符集设置 - Johney - 博客园
最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法。
& 字符(Character)是指人类语言中最小的表义符号。例如&A'、&B'等;& 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符&A'赋予数值0,给字符&B'赋予数值1,则0就是字符&A'的编码;& 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{&A',&B'}时,{&A'=&0, &B&=&1}就是一个字符集;& 字符序(Collation)是指在同一字符集内字符之间的比较规则;& 确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;& 每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation);& MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序&utf8_general_ci&下,字符&a&和&A&是等价的;
MySQL字符集设置
& 系统变量:& character_set_server:默认的内部操作字符集& character_set_client:客户端来源数据使用的字符集& character_set_connection:连接层字符集& character_set_results:查询结果字符集& character_set_database:当前选中数据库的默认字符集& character_set_system:系统元数据(字段名等)字符集& 还有以collation_开头的同上面对应的变量,用来描述字符序。
& 用introducer指定文本字符串的字符集:& 格式为:[_charset] &string& [COLLATE collation]& 例如:&&&&&& SELECT _latin1 &string&;&&&&&& SELECT _utf8 &你好& COLLATE utf8_general_& 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。
MySQL中的字符集转换过程
1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:&&&&&& - 使用每个数据字段的CHARACTER SET设定值;&&&&&& - 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);&&&&&& - 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;&&&&&& - 若上述值不存在,则使用character_set_server设定值。
3. 将操作结果从内部操作字符集转换为character_set_results。
&&&我们现在回过头来分析下我们产生的乱码问题:&&&&&&&&& a 我们的字段没有设置字符集,因此使用表的数据集&&&&&&&&& b 我们的表没有指定字符集,默认使用数据库存的字符集&&&&&&&&& c 我们的数据库在创建的时候没有指定字符集,因此使用character_set_server设定值&&&&&&&&& d 我们没有特意去修改character_set_server的指定字符集,因此使用mysql默认&&&&&&&&& e mysql默认的字符集是latin1,因此,我们使用了latin1字符集,而我们character_set_connection的字符集是UTF-8,插入中文乱码也再所难免了。
常见问题解析& FAQ-1 向默认字符集为utf8的数据表插入utf8编码的数据前没有设置连接字符集,查询时设置连接字符集为utf8&&&& & 插入时根据MySQL服务器的默认设置,character_set_client、character_set_connection和character_set_results均为latin1;&&&& & 插入操作的数据将经过latin1=&latin1=&utf8的字符集转换过程,这一过程中每个插入的汉字都会从原始的3个字节变成6个字节保存;&&&& & 查询时的结果将经过utf8=&utf8的字符集转换过程,将保存的6个字节原封不动返回,产生乱码。参考下图: & 向默认字符集为latin1的数据表插入utf8编码的数据前设置了连接字符集为utf8(我们遇到的错误就是属于这一种)&&&& & 插入时根据连接字符集设置,character_set_client、character_set_connection和character_set_results均为utf8;&&&& --插入数据将经过utf8=&utf8=&latin1的字符集转换,若原始数据中含有\u0000~\u00ff范围以外的Unicode字符,会因为无法在latin1字符集中表示而被转换为&?&(0&3F)符号,以后查询时不管连接字符集设置如何都无法恢复其内容了。转换过程如下图:& &检测字符集问题的一些手段&&& & SHOW CHARACTER SET;&&& & SHOW COLLATION;&&& & SHOW VARIABLES LIKE &character%&;&&& & SHOW VARIABLES LIKE &collation%&;&&& & SQL函数HEX、LENGTH、CHAR_LENGTH&&& & SQL函数CHARSET、COLLATION&使用MySQL字符集时的建议&&& & 建立数据库/表和进行数据库操作时尽量显式指出使用的字符集,而不是依赖于MySQL的默认设置,否则MySQL升级时可能带来很大困扰;&&& & 数据库和连接字符集都使用latin1时,虽然大部分情况下都可以解决乱码问题,但缺点是无法以字符为单位来进行SQL操作,一般情况下将数据库和连接字符集都置为utf8是较好的选择;&&& & 使用mysql CAPI(mysql提供C语言操作的API)时,初始化数据库句柄后马上用mysql_options设定MYSQL_SET_CHARSET_NAME属性为utf8,这样就不用显式地用SET NAMES语句指定连接字符集,且用mysql_ping重连断开的长连接时也会把连接字符集重置为utf8;&&& & 对于mysql PHP API,一般页面级的PHP程序总运行时间较短,在连接到数据库以后显式用SET NAMES语句设置一次连接字符集即可;但当使用长连接时,请注意保持连接通畅并在断开重连后用SET NAMES语句显式重置连接字符集。&其他注意事项&&& & my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用!&&& & 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。&&& & SQL语句中的裸字符串会受到连接字符集或introducer设置的影响,对于比较之类的操作可能产生完全不同的结果,需要小心!&总结&&& 根据上面的分析和建议,我们解决我们遇到问题应该使用什么方法大家心里应该比较清楚了。对,就是在创建database的时候指定字符集,不要去通过修改默认配置来达到目的,当然你也可以采用指定表的字符集的形式,但很容易出现遗漏,特别是在很多人都参与设计的时候,更容易纰漏。&&&& 虽然不提倡通过修改mysql的默认字符集来解决,但对于如何去修改默认字符集,我这里还是给出一些方法,仅供大家参考。&MySQL默认字符集MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.&&& (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;&&& (2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;&&& (3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;&&& (4)安装 MySQL选择多语言支持,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,保证缺省情况下所有的数据库所有表的所有列的都用 UTF-8 存储。查看默认字符集&&& (默认情况下,mysql的字符集是latin1(ISO_8859_1),如何查看在上面我们已经给出了相关命令修改默认字符集(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,&&&&&如 && default-character-set = utf8&&&&& character_set_server =& utf8&&& &修改完后,重启mysql的服务(2) 还有一种修改字符集的方法,就是使用mysql的命令&& & mysql& SET character_set_client = utf8 ;&&&& mysql& SET character_set_connection = utf8 ;&&&& mysql& SET character_set_database = utf8 ;&&&& mysql& SET character_set_results = utf8 ;&&&& mysql& SET character_set_server = utf8 ;&&&& mysql& SET collation_connection = utf8 ;&&&& mysql& SET collation_database = utf8 ;&&&& mysql& SET collation_server = utf8 ;&&&& 设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,存入数据库的仍然是乱码。那connection连接层上可能出了问题。解决方法是在发送查询前执行一下下面这句: SET NAMES 'utf8';它相当于下面的三句指令:SET character_set_client = utf8;SET character_set_results = utf8;SET character_set_connection = utf8;}

我要回帖

更多关于 table.insertrow 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信