我正在尝试更新总线表中的记录,当新请求的mac
地址在总线表中可用时,每次更新行时都不会增加id,但应该是这样的当mac在总线表中不可用时。是否可以更新记录而不将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() )
答案 0 :(得分:1)
REPLACE是SQL标准的MySQL扩展。它可以插入,删除和插入。 看到 https://dev.mysql.com/doc/refman/5.0/en/replace.html
所以你总是插入一个新行,这就是你增加id的原因。
您可以使用UPDATE来实现您的目标
答案 1 :(得分:0)
UPDATE BUS
SET ROUTE = value, DIRECTION = value, LATITUDE = value, LONGITUDE = value, CREATED_AT = NOW()
WHERE {CONDITION}
删除大括号。
您需要在WHERE语句之后准确指定应更新哪些行(例如,如果我想要更新ID为14的行,我将使用:
WHERE ID = 14
干杯