2016-09-28 12 views
5
ALTER TABLE user DROP COLUMN registered_date 

Chúng tôi có thể thả cột bằng lệnh trên. Nhưng làm thế nào tôi có thể thả nó chỉ khi cột registered_date tồn tại?làm thế nào để thả một cột nếu tồn tại trong mysql?

+0

Nó không giống như có một cách, nhưng tồi tệ nhất trường hợp kịch bản mà bạn sẽ nhận được một lỗi mà bạn có thể xử lý ở lớp ứng dụng của bạn. –

+0

nó sẽ giống như người dùng ALTER TABLE này DROP COLUMN IF EXISTS registered_date; –

+0

@DeepakJoshi tôi sẽ nhận được Lỗi cú pháp: "NẾU bất ngờ". – CloudSeph

Trả lời

-1
IF EXISTS(SELECT * 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name') 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 

HOẶC

IF (SELECT COUNT(*) 
      FROM information_schema.COLUMNS 
      WHERE 
      TABLE_SCHEMA = 'db_name' 
      AND TABLE_NAME = 'table_name' 
      AND COLUMN_NAME = 'column_name'>0) 
BEGIN 
ALTER TABLE table_name DROP COLUMN column_name 
END 
+0

tôi nhận được một lỗi cú pháp 'nếu không phải là đầu vào hợp lệ tại vị trí này'. nếu tôi làm theo ở trên – CloudSeph

+0

@IvanCloud những combo chỉ có sẵn giống như một proc được lưu trữ – Drew

+0

không hoạt động cú pháp không hợp lệ gần nếu – Clintm

Các vấn đề liên quan