澳门新浦京8455com数据库的增、删、改、查 (CURD),数据库curd

我们知道多值字段功能很强大,但不能上传图片确很操蛋,其实改吧改吧就可以了,只是帝国的大大们似乎不太注意这些小细节,只有靠自己来优化了。

在增量部署系统的时候, 经常需要提供增量修改的脚本,
如果是修改存储过程或者自定义函数, 那还是很好改的,
不用担心表功能收到影响. 

数据库的增、删、改、查 (CURD),数据库curd

增改查删可以用CURD来表示  增加:create  修改:update   查找:read    
 删除:delete   

增加create :  insert +表名+values+(信息);

                  insert+表名(字段名1,字段名2)+value+(信息)

删除 delect : delect  字段=’信息’ from +表名  where 字段名=信息 and/or
字段名=信息

查找 read:  select * from +表名   从整个表中查找;

                 select  字段1,字段2 + from 表名+ where
+字段+like+”%关键词%”;

                 select * from +表名+order by +字段+ASE(默认
从低到高排序)/DESC(从高到低排序);

修改 update: update+表名+set+字段=信息

                     updae+表名+set+字段=信息 +where+字段=信息

看着挺简单,写起来手很生啊,还得多加练习

(CURD),数据库curd
增改查删可以用CURD来表示 增加:create 修改:update 查找:read
删除:delete 增加create : insert +表名…

scriptfunction domvadd_ffff(){ var i; var str=''; var oldi=0; var j=0; var addnum=0; addnum=parseInt(document.add.mvaddnum_ffff.value); oldi=parseInt(document.add.mveditnum_ffff.value); for(i=1;i=addnum;i++) { j=i+oldi; str=str+'trtd align="center"input type="text" name="ffff_1[]" value=""a onclick="window.open(/'ecmseditor/FileMain.php?type=1classid=?=$classid?infoid=?=$id?doing=1field=ffff_1_'+j+'/',/'/',/'width=700,height=550,scrollbars=yes/');" title="选择已上传的图片"img src="../data/images/changeimg.gif" border="0" align="absbottom"/a/td/tr'; } document.getElementById("mvadd_ffff").innerHTML="table width='100%' border=0 cellspacing=1 cellpadding=3"+str+"/table";}/scripttable width="100%" border="0" cellspacing="0" cellpadding="0" tr td table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#DBEAF5" trtd align="center"设置1/td/tr /table /td /tr tr td ?php if($ecmsfirstpost==1) { ? table width='100%' border=0 cellspacing=1 cellpadding=3 ?php $editnum=3; for($i=1;$i=$editnum;$i++) { ? trtd align="center"input type="text" name="ffff_1[]" value=""a onclick="window.open('ecmseditor/FileMain.php?type=1classid=?=$classid?infoid=?=$id?doing=1field=ffff_1_?=$i?','','width=700,height=550,scrollbars=yes');" title="选择已上传的图片"img src="../data/images/changeimg.gif" border="0" align="absbottom"/a/td/tr ?php } ? /table ?php } else { $editnum=0; if($r['ffff']) { $r['ffff']=stripSlashes($r['ffff']); ? table width='100%' border=0 cellspacing=1 cellpadding=3 ?php //录入项 $j=0; $mvf_record=explode('||||||',$r['ffff']); $mvf_count=count($mvf_record); for($i=0;$i$mvf_count;$i++) { $j=$i+1; $mvf_field=explode("::::::",$mvf_record[$i]); ? trtd align="center"input type="text" name="ffff_1[]" value="?=$mvf_field[0]?" input type="hidden" name="ffff_mvid[]" value="?=$j?"input type="checkbox" name="ffff_mvdelid[]" value="?=$j?"删/td/tr ?php } ? /table ?php $editnum=$j; } } ? /td /tr tr td height="25"扩展数量: input name="mveditnum_ffff" type="hidden" value="?=$editnum?" input name="mvnum_ffff" type="hidden" value="1" input name="mvmust_ffff" type="hidden" value="1" input name="mvaddnum_ffff" type="text" value="1" size="6" input type="button" name="Submit5" value="输出" onClick="javascript:domvadd_ffff();"/td /tr tr td /td /tr/table

如果是改字段呢?

上面ffff 是字段的名称

首先不知道字段是不是已经在系统里面, 没有的话, 需要新增上去, 有的话,
需不需要修改?

其次, 脚本如果报错, 是否会重复执行一下脚本? 会不会导致别的问题呢?
看脚本里面执行结果报了好多错, 总觉得, 会被运维鄙视一遍. 做开发的,
真受不了别人鄙视自己的东西.

直接用sql去新增, 修改字段, 好像不太行, 经常会有问题.

正所谓, 条条大路通罗马. 一条路走不通, 我们换一条路走吧.

那么, 换一种思路, 不直接用表操作sql去改字段, 而是通过存储过程的方式来改.
对字段进行判断, 再修改, 那么你提供的脚本就是可重复执行脚本, 且不会报错.

delimiter $
drop procedure if exists pro_put_column;
create procedure pro_put_column()
BEGIN

    if not exists(select * from information_schema.COLUMNS where TABLE_SCHEMA=database() 
    and table_name='表名' and COLUMN_NAME='字段名') 
    THEN
        alter table 表名 add column 字段名 varchar(50);
    ELSE
        alter table 表名 MODIFY COLUMN 字段名 varchar(51);
    end if;

END $
delimiter ;

call pro_put_column();

可以先查询字段是否存在, 再决定要不要加, 或者要不要改. 后面的逻辑,
就根据实际需要去修改就可了.

如果确定是新增字段, 那么else部分完全可以删除掉. 

就是每改一个字段, 都要去查询一次, 有点不方便. 写的东西更多了.  

 

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图