易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : mysql

MySQL 编码机制

一般在MYSQL使用中文查询
都是用 set NAMES character
character_set_client ,这是用户告诉MySQL查询是用的什么字符集。
character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
character_set_results , MySQL将存储的数据转换成character_set_results中设定的字符集发送给用户。
DISCUZ并没有使用set NAMES character

SET NAMES 'x'语句与这三个语句等价:
mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x;
而DISCUZ里面是
复制代码
代码如下:
@mysql_query("SET
character_set_connection=$dbcharset, character_set_results=$dbcharset,
character_set_client=binary", $this->link);
SET character_set_client = binary;使用二进制字符集查询
此三处的字符设定很大程度上会解决乱码问题,那么着三个设定具体有什么作用呢?
character_set_client

定的是Sql语句的编码,如果设置为 binary,mysql就当二进制来处理,character_set_connection指定了mysql
用来 ......

mysql C编程(一)mysql错误码,关于mysql_errno

假设我们使用mysql_real_query执行了一条sql语句之后,返回值为非0值,大家都知道这是这条语句执行出错,但是我们想
了解地更详细点的话,究竟是什么原因导致了这个错误呢?这时候就得用上mysql提供的另外一个API:mysql_errno。
mysql_errno会提供最近一次调用的C API出错的信息(不见得每个API都会对这个errno进行设置,但是最常用的mysql_real_query是会的)。通过mysql_errno返回的错误码一般都有规则:比如属于区间[1000,2000)的错误是逻辑错误,比如键值冲突这种错误,这些错误是由服务器返回的;其他的比如[2000, 3000)的当然就不是逻辑错误了。
另外,如果想更加详细的信息,可以通过mysql_error函数返回一个错误信息的字符串 ......

mysql C编程(一)mysql错误码,关于mysql_errno

假设我们使用mysql_real_query执行了一条sql语句之后,返回值为非0值,大家都知道这是这条语句执行出错,但是我们想
了解地更详细点的话,究竟是什么原因导致了这个错误呢?这时候就得用上mysql提供的另外一个API:mysql_errno。
mysql_errno会提供最近一次调用的C API出错的信息(不见得每个API都会对这个errno进行设置,但是最常用的mysql_real_query是会的)。通过mysql_errno返回的错误码一般都有规则:比如属于区间[1000,2000)的错误是逻辑错误,比如键值冲突这种错误,这些错误是由服务器返回的;其他的比如[2000, 3000)的当然就不是逻辑错误了。
另外,如果想更加详细的信息,可以通过mysql_error函数返回一个错误信息的字符串 ......

mysql常用命令

 grant all on *.* to root@'192.168.10.131' identified by 'admin';
 
LOAD DATA INFILE (从文件中导入数据)
mysqldump -u pivot -p pivot news > c:\news.sql
 那么还原可以mysql命令,mysql -u 用户名 -p (密码) -h 主机名 --one-database 还原数据库名 < 路径/备份名.bak,--one-database是指定要恢复的数据库.
EXA:
mysql -u pivot -p pivot news < c:\news.sql
(括号表示密码不先输入,在连接时在Enter password;若密码为空可缺省-p参数)
ALTER table FD_Task_Detail ADD(errorno  smallint(6)  DEFAULT NULL );(修改表结构) ......

mysql 安装包

MySQL-client-community-5.0.41-0.rhel4.i386.rpm                    # 客户端
MySQL-devel-community-5.0.82-0.rhel4.i386.rpm                    #开发时要用的头文件和C文件
MySQL-server-community-5.0.41-0.rhel4.i386.rpm                   #服务端
MySQL-shared-community-5.0.82-0.rhel4.i386.rpm                  #一些库文件
perl-DBD-MySQL-2.9004-3.1.i386.rpm                        
 perl-DBI-1.40-5.i386.rpm ......

mysql 表类型myISAM ,Innodb

就我知道的两个区别:
myISAM  不支持事务
Innodb   支持事务
如果修改myISAM 为Innodb,需要把原来的数据先dump出来,清空表,在重新插入
innodb在/etc/my.cfg的配置为
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
如果这几个文件存在 ibdata1  ibdata2  ib_logfile0   ib_logfile1,则需要先删掉,重启mysql之后才能生效
mysql -u$user -p$passwd -e"use $database;START TRANSACTION;DELETE from $table;
LOAD DATA INFILE '$datafile' IGNORE INTO TABLE $table IGNORE 1 LINES;COMMIT;" ......

mysql级联删除 Mysql 的 Cascade Restrict

今天遇到数据库的一个问题,就是每当从主表中删除一个主键id时,由于与他相关联的表中有相关的字段数据,所以无法删除。查了一大堆资料,发现我建表关联用的是on Restrict.可能问题就出在这里吧。 
外键约束对子表的含义: 
  如果在父表中找不到候选键,则不允许在子表上进行insert/update 
外键约束对父表的含义: 
  在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 
  
  . cascade方式 
   在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
   On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用 
  . set null方式 
   在父表上update/delete记录时,将子表上匹配记录的列设为null 
   要注意子表的外键列不能为not null 
   On delete set null从mysql3.23.50开始可用; on update set null从mysql4.0.8开始可用 
  ......
总记录数:2220; 总页数:370; 每页6 条; 首页 上一页 [62] [63] [64] [65] 66 [67] [68] [69] [70] [71]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号