欢迎分享,转载请注明来源:内存溢出
创建mysql数据库时需要创建索引,但是mysql并不有drop index index_name if exists on table_name这样的语法,所以写一个存储过程来判断,如果存在就删除后再创建新的索引。存储过程如下:---- procedure of delete index--drop procedure if exists Del_idxDELIMITER $$CREATE PROCEDURE Del_idx(IN p_tablename varchar(200), IN p_idxname VARCHAR(200))beginDECLARE str VARCHAR(250)SET @str=concat(' drop index ',p_idxname,' on ',p_tablename)SELECT COUNT(*) INTO @cnt FROM information_schema.statistics WHERE TABLE_NAME=p_tablename AND INDEX_NAME=p_idxnameif @cnt >0 thenEXECUTE stmt end ifend $$DELIMITER 使用时传入表名和索引名即可,如CALL Del_idx('tableA', 'indexA')兄弟,primary key是主键,每个表只能有一个主键,而且数据是唯一的。\x0d\x0a可以这样写:\x0d\x0aCREATE TABLE IF NOT EXISTS `".$ctb_name."` (\x0d\x0a `id` INT(9) NOT NULL AUTO_INCREMENT PRIMARY KEY,\x0d\x0a `keyid` VARCHAR(20) NOT NULL,\x0d\x0a `key` VARCHAR(20) NOT NULL,\x0d\x0a `stauts` BOOL NOT NULL DEFAULT'0',\x0d\x0aindex `idx_status`(`status`)\x0d\x0a )ENGINE = MYISAM DEFAULT CHARSET=utf8\x0d\x0a不过,status是bool类型的字段,只有true和false,区分度太低,没有必要加索引。\x0d\x0a\x0d\x0a索引目的是为了使查询更快,区分度小的时候不如全表扫描。
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
html中怎样设置内边框
上一篇
2023-04-15
在html中超链接路径分哪几类
下一篇
2023-04-15
评论列表(0条)