
方式1:
insert into on dumplicate key update
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
代码如下:
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;
方式2:replace into
replace into 有三种形式:
1. replace into tbl_name(col_name, …) values(…)
2. replace into tbl_name(col_name, …) select …
3. replace into tbl_name set col_name=value, …
第一种形式类似于insert into的用法......
作者: owoer
|
发表于:2016年3月21日
|
栏目:MySQL
|
MySQL 重复插入时更新 insert into on dumplicate key update /replace into已关闭评论
阅读全文

1、在内层语句首设置set d1=d;,尾设置set d=d1;
避免内查询NOT FOUND时d被设置为1从而退出外循环。
2、将内部语句包含在新的begin…end中
设置DECLARE CONTINUE HANDLER FOR NOT FOUND SET d = 0;
内部查询NOT FOUND时d值仍为0,继续外循环。
eg:
begin
DECLARE d int DEFAULT 0;
declare vid int;
declare vserver_contact_id int;
declare vpersonalemail varchar(100);
declare vmobilenum varchar(32);
DECLARE vuserid int(11) default 0;
declare d1 int;
declare cur CURSOR for
select id,server_contac......
作者: owoer
|
发表于:2016年3月18日
|
栏目:MySQL
|
mysql存储过程游标(嵌套语句互不影响)已关闭评论
阅读全文

mysql共享表空间改为独立表空间
InnoDB 引擎默认会将表数据存储在一个共享空间ibdata1文件内,在增删数据库时,ibdata1文件不会自动收缩,造成不便。
可以在MySQL配置文件[mysqld]增加innodb_file_per_table参数,将共享表空间改为独立表空间。
(MyISAM 引擎会分别创建三个文件:表结构、表索引、表数据空间。)
方法:
1、备份数据库
mysqldump -u root -p –add-drop-table –all-databases > C:\localdb.dmp
如果报如下错误,可加 –ignore-table=mysql.event 参数
— Warning: Skipping the data of ta......
![MySQL空间扩展 GeomFromText(wkt[,srid])](http://www.iswz.net/wp-content/uploads/2012/08/mysql.jpg)
查询:
SELECT `formdocid`, AsText( `UserGeoField1` ) AS `location`
FROM `wfformdoc
新增:`
INSERT INTO `wfformdoc` (`formdocid`,`UserGeoField1`,`locname`) VALUES
( NULL, ( GeomFromText(‘POINT(40.644047 -73.782291) ‘ ) ),’kennedy’)
19.4. 创建具备空间功能的MySQL数据库
19.4.1. MySQL空间数据类型
19.4.2. 创建空间值
19.4.3. 创建空间列
19.4.4. 填充空间列
19.4.5. 获取空间数据
本节介绍了可用于表示MySQL中空间数据的数据类型,以及用于创建和检索空间值的函数......
作者: owoer
|
发表于:2016年1月21日
|
栏目:MySQL
|
MySQL空间扩展 GeomFromText(wkt[,srid])已关闭评论
阅读全文

1、PDO::query
PDO::query执行一条SQL语句,如果通过,则返回一个PDOStatement对象。PDO::query函数有个“非常好处”,就是可以直接遍历这个返回的记录集。
示例如下:
$sql = ‘SELECT name FROM url’;
foreach ($dbh->query($sql) as $row) {
print $row[‘name’] . “\t”;
}
query同传统的mysql query函数类似,同样需要对开发者自行对输入的sql语句进行安全检查。
query因为会返回PDOStament对象,似乎用在SELECT语句执行上更合适,这跟上文提到的query支持直接遍历不谋而合。
query执行后......
作者: owoer
|
发表于:2015年12月26日
|
栏目:MySQL
|
PDO query exec execute已关闭评论
阅读全文