更新记录而不增加id的值

时间:2015-07-17 17:26:53

标签: mysql

我正在尝试更新总线表中的记录,当新请求的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()  )

2 个答案:

答案 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

干杯