Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sprawdź, czy kolumna istnieje przed ALTER TABLE -- mysql

Ponieważ instrukcje sterujące mysql (np. "JEŻELI") działają tylko w procedurach składowanych, tymczasowe można utworzyć i wykonać:

DROP PROCEDURE IF EXISTS add_version_to_actor;

DELIMITER $$

CREATE DEFINER=CURRENT_USER PROCEDURE add_version_to_actor ( ) 
BEGIN
DECLARE colName TEXT;
SELECT column_name INTO colName
FROM information_schema.columns 
WHERE table_schema = 'connjur'
    AND table_name = 'actor'
AND column_name = 'version';

IF colName is null THEN 
    ALTER TABLE  actor ADD  version TINYINT NOT NULL DEFAULT  '1' COMMENT  'code version of actor when stored';
END IF; 
END$$

DELIMITER ;

CALL add_version_to_actor;

DROP PROCEDURE add_version_to_actor;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaprojektować wielodostępną bazę danych mysql

  2. Pytanie MySQL - Jak obsługiwać wiele typów użytkowników - jedna tabela czy wielu?

  3. Symfony3 - SQLSTATE[HY000] [2002] Brak takiego pliku lub katalogu

  4. Jak wstawić wartość hebrajską do bazy danych mysql w php

  5. Zmień unikalny klucz razem w mysql