添加表字段时如何判断字段不存在再添加?
如下面的语句:
ALTER TABLE t1   ADD  col1 VARCHAR( 1 ) NOT NULL 
我想判断t1表中的col1列是否存在,如果不存在,就添加,如果存在则不添加。
我试了下面两个语句都是错误的:
ALTER TABLE t1   ADD  IF NOT EXISTS col1 VARCHAR( 1 ) NOT NULL 
ALTER TABLE t1   IF NOT EXISTS  ADD  col1 VARCHAR( 1 ) NOT NULL 

请问正确的写法应该怎么写?

解决方案 »

  1.   

    MYSQL中无法用一句完成,你只能用程序来先判断表中是否有这个字段。
      

  2.   

    那就写脚本程序吧。无法通过SQL语句实现。用存储过程反而复杂。
      

  3.   

    SELECT * FROM COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1'
      

  4.   


    IF NOT EXISTS(SELECT 1 FROM COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1') THEN
         ALTER TABLE A ADD c1 VARCHAR(1) NOT NULL;
    END IF;