2014-05-13 32 views
1

我有這樣的一個表:更新查詢問題。 0行更新時,有建議立即進行刪除已經1 HeidiSQL

ALTER TABLE `MW_Locations` CHANGE COLUMN `ID` `ID` INT(20) NULL DEFAULT NULL FIRST, CHANGE COLUMN `UDID` `UDID` INT(20) NULL DEFAULT NULL AFTER `ID`, CHANGE COLUMN `IDACCOUNT` `IDACCOUNT` INT(20) NULL DEFAULT NULL AFTER `UDID`, CHANGE COLUMN `Name` `Name` VARCHAR(50) NULL DEFAULT NULL AFTER `IDACCOUNT`, CHANGE COLUMN `Lat` `Lat` DOUBLE NULL DEFAULT NULL AFTER `Name`, CHANGE COLUMN `Lon` `Lon` DOUBLE NULL DEFAULT NULL AFTER `Lat`,  CHANGE COLUMN `IDMWDevice` `IDMWDevice` INT(50) NULL DEFAULT NULL AFTER `Lon`, CHANGE COLUMN `Desc` `Desc` VARCHAR(50) NULL DEFAULT NULL AFTER `IDMWDevice`, CHANGE COLUMN `IDAction` `IDAction` INT(20) NULL DEFAULT NULL AFTER `Desc`,  CHANGE COLUMN `Status` `Status` VARCHAR(50) NULL DEFAULT NULL AFTER `IDAction`,  ADD PRIMARY KEY (`IDACCOUNT`); 

的問題是我不能做任何update.Like這一個:

UPDATE `MW_Locations` SET `IDACCOUNT`=1 WHERE `ID`=0 AND `UDID`=0 AND `IDACCOUNT`=0 AND `Name`='Panteon' AND `Lat`=25.6789521128695 AND `Lon`=100.336310863495 AND `IDMWDevice`=0 AND `Desc`='' AND `IDAction`=0 AND `Status`='' LIMIT 1; 

林使用heidisql連接到服務器 我做的行是這些的:enter image description here

想要讓我所有的列IDACCOUNT值爲「1」,所以它會在被分配給用戶1的行我數據然後引入一個json數組來完成一些任務。我也想讓ID增量,但它也帶來了一個錯誤。你怎麼看? 非常感謝。

+0

爲什麼標記爲「jquery」? – ntzm

+1

alter table語句也應該失敗。 「IDACCOUNT」列不能作爲顯示數據的唯一「PRIMARY KEY」列。 – VMai

+0

對不起,瑪哈錯誤,這是查詢 –

回答

0

此查詢失敗,因爲您要求您的DOUBLE字段LatLon確切相等。這些列不需要識別您的行。把你的sql語句改寫成

UPDATE `MW_Locations` 
    SET `IDACCOUNT`=1 
WHERE `Name`='Panteon'; 

這個列在這個值足以標識你的行。

我從the MySQL manual舉:

因爲浮點值是近似的,而不是存儲爲準確 值,試圖爲精確治療他們比較可能會導致 問題。