我正在检查何时使用自动递增ID添加行
(简单的查询示例SELECT id FROM tbl where id> 1)但是想知道哪种方法更好
1)有2个查询计数(id),其中id> lastid然后选择if count> 0
2)有1个查询 - 只需选择...并让它返回0结果/如果没有新行则不执行任何操作
我的理解是count方法会更好,因为它不会触及实际数据并使用索引计数,但是使用2个查询但是1个查询会产生更大的影响并且每次都尝试从磁盘中获取
这适用于Mysql和INNODB表
答案 0 :(得分:0)
您可以使用带有PRIMARY KEY
标记的AUTO_INCREMENT
列。所以你不必手动更新id:
CREATE TABLE myTable (
`ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
PRIMARY KEY (ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO myTable (name) VALUES ("Tom");
INSERT INTO myTable (name) VALUES ("Jerry");
SELECT * FROM myTable;
如果您想在这种情况下选择上次使用的ID
,您可以执行
select LAST_INSERT_ID() ;