我是全新手..我想要的是隻刪除表中的一列如果它存在...任何幫助 這裏是我所知道的ALTER TABLE MEN DROP COLUMN Lname
但是如何讓它存在只在sql?只有在存在於sql中時才刪除列
回答
你想要做的事情在純粹的MySQL語法中是不可能的。但是,如果您在應用程序中使用API或其他東西作爲後端。您可以執行以下操作。
IF (SELECT COUNT(*)
FROM table_name.columns
WHERE
TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name'
AND COLUMN_NAME = 'column_name'>0)
BEGIN
ALTER TABLE table_name DROP COLUMN column_name
END
這不是你可以做的事... –
下面的代碼解決您的問題。
if (exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'mytable' AND COLUMN_NAME = 'mycolumn'))
begin
ALTER TABLE 'mytable' DROP COLUMN 'mycolumn'
end
語法錯誤如果在這個位置無效 –
我該怎麼辦? –
正如其他人所提到的,MySQL不支持DROP COLUMN IF EXISTS
,所以最好的辦法是簡單地運行DROP COLUMN
,並忽略錯誤,如果列不存在。
後來我寫了一個使用common_schema來模擬DROP COLUMN IF EXISTS
的方法。這可能對你有用。查看相關blog post瞭解更多詳情。
- 1. 只有在表中不存在某個值時才插入SQL?
- 2. 從supreview中刪除,只有它存在
- 3. SQL刪除行只有一組列的所有值都等於
- 4. 如何在回形針中多次使用照片,並且只有在刪除所有實例時才刪除
- 5. 只有當它存在於sybase中時,我如何刪除任何約束?
- 6. SQL Server triger,只有在另一個數據庫中存在時纔會更新
- 7. 只有在Safari中,Ajax請求才會失敗,只有在緩存XML時
- 8. 只有在Redis中存在密鑰時才訂閱頻道
- 9. 刪除臨時表(如果它存在於SQL Azure上)
- 10. 爲什麼appendChild只在我刪除docType時才起作用
- 11. 只有在兩列都有值時才組合兩列
- 12. 只有在空的情況下才刪除DIV
- 13. 刪除類似列在SQL
- 14. 如何刪除文件,只有在Windows中存在同名的子目錄時
- 15. 只有當完整文件存在於文件夾中時才運行SSIS
- 16. 只有當它們存在於Neo4j中時才檢查多個屬性的值
- 17. 在SQL Server中刪除時消除序列號「空位」
- 18. 從SQL Server中只有一列刪除變音符號
- 19. 在存儲過程中刪除SQL Server
- 20. 只有當密碼存在時才存儲密碼哈希值
- 21. Javascript/regex:只有當它不在括號內時,才能刪除逗號
- 22. 只有在動態創建的對象存在時才旋轉?
- 23. 只有在存在屬性時才測試屬性?
- 24. PHP提取EXTR_OVERWRITE,只有在碰撞存在時才起作用?
- 25. 只有在考慮時區時才能處理保存日期?
- 26. 刪除表,如果存在於SQL Server CE中
- 27. 刪除表(如果它存在於DB2/400中)SQL
- 28. clojure:只有當所有密鑰都存在時才更新
- 29. 在sql中刪除不同的多列
- 30. SQL只在列值超過一次時才選擇記錄
ALTER TABLE [table] DROP COLUMN [column]語句沒有「IF EXISTS」選項 –
那麼我該怎麼做? –
http://stackoverflow.com/questions/173814/mysql-alter-syntax-to-drop-a-column-if-it-exists,http://stackoverflow.com/questions/30307935/how-to-drop -column-from-table-if-012 – ADyson