仓酷云

标题: MSSQL编程:欠亨过删除重修体例 重置序列值得复杂方... [打印本页]

作者: 谁可相欹    时间: 2015-1-16 22:40
标题: MSSQL编程:欠亨过删除重修体例 重置序列值得复杂方...
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
一样平常来说,序列在实践开辟过程当中是常常用到的一种工具,经由过程它来天生主键长短常便利的,可是有些时分我们必要将其从头置零,一般接纳的体例就是删除后从头创立。

上面我们来看一下别的一种体例:

SQL>createsequenceseq_1incrementby1startwith1maxvalue999999999;

序列已创立。SQL>createorreplaceprocedureseq_reset(v_seqnamevarchar2)as2nnumber(10);3tsqlvarchar2(100);4begin5executeimmediateselect||v_seqname||.nextvalfromdualinton;6n:=-(n-1);7tsql:=altersequence||v_seqname||incrementby||n;8executeimmediatetsql;9executeimmediateselect||v_seqname||.nextvalfromdualinton;10tsql:=altersequence||v_seqname||incrementby1;11executeimmediatetsql;12endseq_reset;13/

历程已创立。

SQL>selectseq_1.nextvalfromdual;

NEXTVAL---------2

SQL>/

NEXTVAL---------3

SQL>/

NEXTVAL---------4

SQL>/

NEXTVAL---------5

SQL>execseq_reset(seq_1);

PL/SQL历程已乐成完成。

SQL>selectseq_1.currvalfromdual;

CURRVAL---------1

SQL>

如许能够经由过程随时挪用此历程,来到达序列重置的目标。

此存储历程写的对照仓皇,还能够进一步完美,在此就不再进一步报告。
为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。
作者: 谁可相欹    时间: 2015-1-19 21:12
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
作者: 若天明    时间: 2015-1-25 08:02
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
作者: 冷月葬花魂    时间: 2015-2-8 01:05
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
作者: 愤怒的大鸟    时间: 2015-2-23 20:36
光写几个SQL实在叫无知。
作者: 海妖    时间: 2015-3-7 10:16
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
作者: 兰色精灵    时间: 2015-3-14 20:35
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
作者: 第二个灵魂    时间: 2015-3-21 14:06
学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2