资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

mysql怎么判断存在 mysql查询字段是否存在

mysql索引是否存在判断

很多公司都要求再生产上打得sql脚本允许反复执行(防止某一个sql报错以后要拎出来执行)。

成都创新互联公司是一家专业从事成都网站设计、成都做网站、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!

所以就产生了需要先判断索引是否存在,再做添加索引或者删除索引的操作(若索引不存在,添加或删除索引会报错)。实例如下:

drop PROCEDURE if EXISTS add_index;

DELIMITER //

create PROCEDURE add_index()

BEGIN

IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema='Prod.Oms.OmsToSgGateway' AND table_name = 'Oms.OmsToSgGateway.IntermeDiate' AND index_name = 'index_GW_Query') then

ALTER TABLE `Prod.Oms.OmsToSgGateway`.`Oms.OmsToSgGateway.IntermeDiate` ADD INDEX `index_GW_Query`(`ResourceName`, `Category`, `ResourceType`) USING BTREE COMMENT '增加国网数据检索效率';

END IF;

IF NOT EXISTS (SELECT * FROM information_schema.statistics WHERE table_schema='Prod.Oms.OmsToSgGateway' AND table_name = 'Oms.OmsToSgGateway.IntermeDiate' AND index_name = 'index_ResourceId') then

ALTER TABLE `Prod.Oms.OmsToSgGateway`.`Oms.OmsToSgGateway.IntermeDiate` ADD INDEX `index_ResourceId`(`ResourceId`) USING BTREE COMMENT '源始id';

END IF;

END

//

DELIMITER ;

call add_index();

mysql判断数据库是否存在

首先,没有数据库是能够建立连接的,但这只是和mysql服务器相连,而不是和某个具体的数据库,所以,这样的连接,意义不大(不知道你用什么操作mysql,所以没有给出具体连接字符串)

你如果建立好了连接,判断数据库是否存在就简单了

因为mysql中有一个数据库information_schema(这应该是你知道的),而这张数据库中有一张表schemata,是用来存储其他数据库信息的,你用

select

schema_name

from

schemata;

查询一下,所有的数据库就出来了。

p.s.

我不知道你用的什么和mysql相连的,所以,告诉你的都是通用的方法。如果有问题,再hi我

mysql 怎么判定一条记录是否存在

sql语句:select count(*) from tablename;

然后读取count(*)的值判断记录是否存在。对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来。

以下这个方法是我推荐的。

sql语句:select 1 from tablename where col = col limit 1;

然后读取语句执行所影响的行数。

当然这里limit 1很重要。这要mysql找到一条记录后就不会在往下找了。这里执行所影响的行数不是0就是1,性能提高了不少。

如果你用的是PDO,可以用rowCount(),很容易就都到执行所影响的行数。

这里还有人可能会去读取sql语句查询到的记录,然后判断记录是否存在,从而判断记录是否存在。这个方法虽然可行,但对于我们的要求来说,还是有些浪费,我们不需要查询到的记录,所有性能上会有损失。这里不推荐。


网站名称:mysql怎么判断存在 mysql查询字段是否存在
链接URL:http://cdkjz.cn/article/doogjpi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220