mysql与sqlite两者的SQL有什么区别之处

热度:3322020-04-01 10:41 收藏 0 点赞 0

查询表的所有字段,检查某个字段是否存在

#sqlite
$sql = "pragma table_info(jz_article)";
$list = M()->findSql($sql);
$field = 'id';
$isgo = false;
foreach($list as $v){
	if($v['name']==$field){
	    $isgo = true;
	  //存在
	}
}
#mysql
$sql = "SHOW COLUMNS FROM jz_article";
$list = M()->findSql($sql);
$field = 'id';
$isgo = false;
foreach($list as $v){
	if($v['Field']==$field){
	    $isgo = true;
	  //存在
	}
}


新增字段,两者差不多,mysql可以增加字段编码,而sqlite不需要增加

#mysql
$sql="ALTER TABLE jz_article  ADD abc VARCHAR(255)  CHARACTER SET utf8 default NULL"

#sqlite
$sql="ALTER TABLE jz_article  ADD abc VARCHAR(255)  default NULL"


修改字段,两者差别大

#sqlite
#原理:新增一个临时字段,然后创建一个临时表,把原表删除,跟换临时表名
#假设把aaa,字段改为abc
$sql="ALTER TABLE jz_article ADD abc  VARCHAR(255) default NULL;";
$x = M()->runSql($sql);
//查询所有字段
$sql = "pragma table_info(jz_article )";
$list = M()->findSql($sql);
$fieldsdata = array();
foreach($list as $v){
	if($v['name']!=$old['field'] && $v['name']!=$data['field'].'_jizhi1'){
		$fieldsdata[]=$v['name'];
	}
}
//创建临时表,查询旧字段作为新字段数据
$sql = "create table temp as select ".implode(',',$fieldsdata).", aaa as abc from jz_article where 1 = 1;";
$sql.="drop table jz_article ;alter table temp rename to jz_article ;";
$x = M()->runSql($sql);

#mysql
$sql="ALTER TABLE jz_article change aaa abc CHARACTER SET utf8 ";
$x = M()->runSql($sql);








暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

外卖天天领红包,饿了么,美团红包天天都有!

外卖天天领红包,饿了么,美团红...

最低每顿可省2元

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本