在 MySQL 中,沒有主鍵的表更新數據是一項比較棘手的任務,因為沒有主鍵的表不僅缺少索引,而且無法直接根據數據行來進行更新。
但是,仍然有幾種方法可以讓你在沒有主鍵的情況下更新數據:
方法一:使用 UNIQUE 約束CREATE TABLE `example` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `age` INT(11) NOT NULL, UNIQUE KEY `name_age_unique` (`name`,`age`) ); -- 更新數據 UPDATE `example` SET `age` = 25 WHERE `name` = 'John';
方法二:使用 LIMIT 子句-- 更新數據 UPDATE `example` SET `age` = 25 WHERE `name` = 'John' LIMIT 1;
方法三:使用 FIND_IN_SET() 函數-- 更新數據 UPDATE `example` SET `age` = 25 WHERE FIND_IN_SET(`name`, 'John,Marie,Bob') >0;
無論你選擇哪種方法,都要注意,沒有主鍵的表會降低查詢和更新的性能,因為每個操作都需要進行全表掃描。
下一篇mysql沒有依賴