0

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

  mysql-> SHOW COLUMNS FROM mytable 

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

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

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

4

2 回答 2

1

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

于 2012-07-31T10:04:27.283 回答
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;
于 2012-07-31T10:14:10.960 回答