sql >> Databáze >  >> RDS >> Mysql

zkontrolujte, zda sloupec existuje před ALTER TABLE -- mysql

Protože řídicí příkazy mysql (např. „IF“) fungují pouze v uložených procedurách, lze vytvořit a spustit dočasný:

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. Jednoduché náhodné vzorky z databáze SQL

  2. Číselné řazení varchar pole v MySQL

  3. Vizualizace dat pomocí Apache Zeppelin – výukový program

  4. Nesprávný soubor klíče pro tabulku '/tmp/#sql_3c51_0.MYI' zkuste jej opravit