当新请求的mac地址在总线表中可用时,我正在尝试更新总线表中的记录,每次更新该行时不增加id,但在总线表中无法使用时应该是这样。另外,是否有可能更新记录而不将id增量为一个?
我很感谢你的帮助。
mysql代码:
CREATE TABLE IF NOT EXISTS bus
(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
mac VARCHAR(30) NOT NULL UNIQUE,
route int(11) NOT NULL,
direction VARCHAR(30) NOT NULL,
latitude FLOAT(10,6) NOT NULL,
longitude FLOAT(10,6) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)
REPLACE INTO bus(route, direction, latitude, longitude, created_at)
VALUES( ?, ? , ? ,?, now() )发布于 2015-07-17 17:40:11
替换是对SQL标准的MySQL扩展。它要么插入,要么删除和插入。请参阅https://dev.mysql.com/doc/refman/5.0/en/replace.html
因此,您总是插入一个新行,这就是您得到id增量的原因。
您可以使用更新来实现您想要的结果。
发布于 2015-07-17 18:12:45
UPDATE BUS
SET ROUTE = value, DIRECTION = value, LATITUDE = value, LONGITUDE = value, CREATED_AT = NOW()
WHERE {CONDITION}去掉卷发括号。
您需要在WHERE语句之后确切地指定应该更新的行(或行),例如,如果我想用id 14更新该行,我将使用:
WHERE ID = 14干杯
https://stackoverflow.com/questions/31481435
复制相似问题