3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊
如果僅是要獲取記錄(行)數(shù),則建議使用:
SELECT TABLE_ROWS
FROM information_schema.tables
WHERE table_name='the_table_you_want' -- Can end here if only 1 DB
AND table_schema = DATABASE(); -- See comment below if > 1 DB
(至少對于MySQL)。

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個贊
以下是查找AUTO_INCREMENT表的下一個值的最有效方法。即使在包含數(shù)百萬個表的數(shù)據(jù)庫上,這也很快,因?yàn)樗恍枰樵儩撛诘拇笮蚷nformation_schema數(shù)據(jù)庫。
mysql> SHOW TABLE STATUS LIKE 'table_name';
// Look for the Auto_increment column
但是,如果必須在查詢中檢索此值,則information_schema必須轉(zhuǎn)到數(shù)據(jù)庫。
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
如果您通過編寫選擇查詢直接獲得最大數(shù)量,則您的查詢可能會給出錯誤的值。例如,如果您的表有5條記錄,那么您的增量ID將為6,如果我刪除5號記錄,則您的表中有4條記錄,最大ID為4,在這種情況下,您將獲得5作為下一個增量ID。提示您可以從mysql Defination本身獲取信息。通過在php中編寫以下代碼
<?
$tablename = "tablename";
$next_increment = 0;
$qShowStatus = "SHOW TABLE STATUS LIKE '$tablename'";
$qShowStatusResult = mysql_query($qShowStatus) or die ( "Query failed: " . mysql_error() . "<br/>" . $qShowStatus );
$row = mysql_fetch_assoc($qShowStatusResult);
$next_increment = $row['Auto_increment'];
echo "next increment number: [$next_increment]";
?>
添加回答
舉報(bào)