我想在 mytable 列“auto”中检查是否存在,如果不存在,添加他的。这样做:
mysql-> SHOW COLUMNS FROM mytable
之后,我用 PHP 检查结果是否存在“自动”,如果没有,我会:
mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci
问题:请告诉,如何在一个查询中进行此操作?
我想在 mytable 列“auto”中检查是否存在,如果不存在,添加他的。这样做:
mysql-> SHOW COLUMNS FROM mytable
之后,我用 PHP 检查结果是否存在“自动”,如果没有,我会:
mysql-> ALTER TABLE mytable ADD auto VARCHAR (30) NOT NULL COLLATE utf8_general_ci
问题:请告诉,如何在一个查询中进行此操作?
跳过第一个查询,然后尝试添加它,如果它已经存在,它将失败,如果它丢失,它将被添加
您可以在存储过程中定义以下查询,如果不存在,则调用存储过程来添加列。
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;