From 0c749854f4dcde2813bd9daf5b055fbbce4f7120 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 21 Aug 2007 08:35:02 +0000 Subject: [PATCH] =?UTF-8?q?#91=20mysql/sqlite=EC=9D=98=20getNextSequence()?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=B4=2010000=EA=B0=9C=20=EB=8B=A8?= =?UTF-8?q?=EC=9C=84=EB=A1=9C=20=EC=82=AD=EC=A0=9C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=ED=95=98=EA=B3=A0=20mysql=EC=97=90=EC=84=9C=200?= =?UTF-8?q?=EC=9D=B4=EB=9D=BC=EB=8A=94=20=EA=B0=92=EC=9D=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2364 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBMysql.class.php | 8 +++++--- classes/db/DBMysql_innodb.class.php | 8 +++++--- classes/db/DBSqlite2.class.php | 6 ++++-- classes/db/DBSqlite3_pdo.class.php | 8 +++++--- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index 7ec19b22c..8bc7ab0e6 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -177,11 +177,13 @@ * @brief 1씩 증가되는 sequence값을 return (mysql의 auto_increment는 sequence테이블에서만 사용) **/ function getNextSequence() { - $query = sprintf("insert into `%ssequence` (seq) values ('')", $this->prefix); + $query = sprintf("insert into `%ssequence` (seq) values ('0')", $this->prefix); $this->_query($query); $sequence = mysql_insert_id(); - $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); - $this->_query($query); + if($seqnece % 10000 == 0) { + $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); + $this->_query($query); + } return $sequence; } diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 0c6dc539e..1acba1805 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -186,11 +186,13 @@ * @brief 1씩 증가되는 sequence값을 return (mysql의 auto_increment는 sequence테이블에서만 사용) **/ function getNextSequence() { - $query = sprintf("insert into `%ssequence` (seq) values ('')", $this->prefix); + $query = sprintf("insert into `%ssequence` (seq) values ('0')", $this->prefix); $this->_query($query); $sequence = mysql_insert_id(); - $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); - $this->_query($query); + if($seqnece % 10000 == 0) { + $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); + $this->_query($query); + } return $sequence; } diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index 0f4f1d227..d0e7dda18 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -175,8 +175,10 @@ $query = sprintf("insert into %ssequence (seq) values ('')", $this->prefix); $this->_query($query); $sequence = sqlite_last_insert_rowid($this->fd); - $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); - $this->_query($query); + if($seqnece % 10000 == 0) { + $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); + $this->_query($query); + } return $sequence; } diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index e831a13d2..9a1d37a0f 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -196,9 +196,11 @@ $this->_prepare($query); $result = $this->_execute(); $sequence = $this->handler->lastInsertId(); - $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); - $this->_prepare($query); - $result = $this->_execute(); + if($seqnece % 10000 == 0) { + $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); + $this->_prepare($query); + $result = $this->_execute(); + } return $sequence; }