我正在更新我的數據庫中的一些表的過程中,我使用下面的代碼來檢查主鍵並放下它,然後添加一個新的主鍵。MySQL報告主鍵,但不能從表中刪除它
if(strpos($value,'PRIMARY') !== false)
{
$dropit = "DROP PRIMARY KEY ,";
$query = "ALTER TABLE `".$tablename."` ".$dropit." ADD PRIMARY KEY (`".$name."`);" ;
}
當我跑我得到這個錯誤:
1091 - Can't DROP 'PRIMARY'; check that column/key exists SQL=ALTER TABLE `my_table` DROP PRIMARY KEY , ADD PRIMARY KEY (`id`);
一些google搜索後,我已經看到了這個問題出現在MySQL的錯誤報告形成像2006年那麼我會想到這會被解決現在。 MySQL Bugs我的SQL版本是5.1.44,所以不是超級老...好像列可以看起來像主鍵但不是主鍵...所以我想知道是否有更好的方法來檢查之前我嘗試刪除以防止出現錯誤。
我也看到了這對一些Drupal的論壇,但沒有任何線索如何解決給定的...
如果您想更多周圍的代碼將有助於讓我知道,我會加的。
我們需要更多的背景:什麼持有'$ value'變量?你爲什麼放棄創建PK? –
顯然不是讀取'主鍵'的整個值。如果你截斷查詢來簡單地刪除pk而不讀取新的。那它有用嗎? – nageeb
刪除「添加主鍵('。」。$ name。「')」不會導致錯誤仍然存在。 – Cleanshooter