我有一個表,名爲itemorder有:userID
,itemID
,date
,status
,notes
在我MYSQL DB
。 表的PK是userID, itemID
刪除記錄,而無需PK
我需要寫一個SQL查詢,將刪除誰不超過2天及狀態的所有行= 2 (此SQL查詢會在我的服務器每天一次運行)。
我已經寫了下面的SQL查詢:
SELECT *
FROM itemorder
WHERE
statusOrder=2
AND statusDate< (SELECT DATE_ADD(CURDATE(), INTERVAL -2 DAY))
查詢將返回誰是匹配條件的所有行。但是,如果我將SELECT *
更改爲DELETE
它不起作用。
這裏是代碼
DELETE
FROM itemorder
WHERE
statusOrder=2
AND statusDate<(SELECT DATE_ADD(CURDATE(), INTERVAL -2 DAY))
它說:從我瞭解,我無法刪除的查詢WHERE
不識別每行由它的PK錯誤Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor and reconnect.
。我能做什麼? 我讀的主題Delete duplicate records from a SQL table without a primary key但是仍然無法計算如何將我的SELECT
更改爲DELETE
。
當你進入'首選項 - > SQL編輯器 - >查詢編輯器時會發生什麼?你看到像'禁用安全模式'的東西嗎? –
你可以添加你測試Delete的確切SQL嗎? – woemler
這是SQL還是MySQL? – Strawberry