表中存在检查列,并在一个查询中添加列

时间:2012-07-31 09:59:19

标签: mysql

我想在mytable列“auto”中检查,是否存在,如果不存在,请添加他的。 a这样做:

  mysql-> SHOW COLUMNS FROM mytable 

之后,用PHP检查,结果是否存在“自动”,如果不存在,我做:

  mysql-> ALTER TABLE mytable  ADD auto  VARCHAR (30) NOT NULL COLLATE utf8_general_ci 

问题:请告诉我,如何在一个查询中进行此操作?

2 个答案:

答案 0 :(得分:1)

只是跳过第一个查询,并尝试添加它,如果它已经存在,它将失败,如果它丢失,它将被添加

答案 1 :(得分:1)

您可以在存储过程中定义以下查询,并调用存储过程以添加列(如果不存在)。

IF NOT EXISTS(
    SELECT * FROM information_schema.COLUMNS
    WHERE COLUMN_NAME='auto' AND TABLE_NAME='my_table' AND TABLE_SCHEMA='the_schema'
    )
    THEN
        ALTER TABLE `the_schema`.`my_table`
        ADD COLUMN `auto` VARCHAR (30) NOT NULL COLLATE utf8_general_ci ;

END IF;