为了选择最后一条记录,当我的数据库是 MySQL 时,我使用了这个:
$result = mysql_query("SELECT Id
FROM test
ORDER BY LENGTH(Id), Id ASC");
$count = mysql_numrows($result);
if($count != 0) {
$lastid = mysql_result($result,$count-1,"Id");
}
...而且效果很好。
但现在我的表位于 Oracle 数据库中 - 我写道:
$stid = oci_parse($conn, "SELECT Id
FROM test
ORDER BY LENGTH(Id), Id ASC");
oci_execute($stid);
$p = oci_parse($conn, "SELECT COUNT(ID)
FROM test");
oci_execute($p);
$count = oci_fetch_array($p);
if($count[0] != 0) {
$lastid = oci_result($stid, $count[0]-1);
}
它不起作用 - 我没有得到最后一条记录。
你用这个做什么?如果是确定下一个Id,那么不要这样做,但使用sequence http://www.orafaq.com/wiki/Sequence反而。如果没有那么你可以使用select max(id) from testid
以获得列的最大值。
edit
首先创建一个序列来存储序号:
create sequence testid_seq;
然后当你插入一条记录时,使用
insert into testid(id, ...) values ("D111-" || testid_seq.nextval, ... );
只需用您想要插入的信息填充点即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)