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

Możemy upuścić kolumnę za pomocą powyższego polecenia. Ale jak mogę go upuścić tylko wtedy, gdy istnieje kolumna registered_date?jak upuścić kolumnę, jeśli istnieje w mysql?

+0

To nie wygląda istnieje sposób, ale najgorszy scenariusz to pojawi się błąd, który mógłby obsłużyć Cię w warstwie aplikacji. –

+0

będzie wyglądać tak, jak ten użytkownik ALTER TABELA UPUŚĆ KOLUMNĘ JEŚLI EXISTS zarejestrowana_data; –

+0

@DeepakJoshi otrzymam błąd składniowy: "Nieoczekiwany IF". – CloudSeph

Odpowiedz

-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 

LUB

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

Otrzymuję błąd składni "jeśli nie jest prawidłowym wejściem w tej pozycji". jeśli podążam powyżej – CloudSeph

+0

@IvanCloud te kombinacje wypowiedzi są dostępne tylko w zapisanym procesie – Drew

+0

nie działa nieprawidłowa składnia w pobliżu, jeśli – Clintm

Powiązane problemy