Mysql 将列(如果存在)添加到sql表并填充它

Mysql 将列(如果存在)添加到sql表并填充它,mysql,Mysql,我试图添加一列,如果它不存在,并填充它。我的问题如下 IF NOT EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'table_name' AND TABLE_NAME = 'adapter' AND COLUMN_NAME = 'adapter_ip' ) BEGIN

我试图添加一列,如果它不存在,并填充它。我的问题如下

IF NOT EXISTS (
    SELECT *
        FROM information_schema.COLUMNS
            WHERE
                TABLE_SCHEMA = 'table_name'
            AND TABLE_NAME = 'adapter'
            AND COLUMN_NAME = 'adapter_ip'
)
BEGIN
    ALTER TABLE `adapter` ADD `adapter_ip` varchar(15) NOT NULL DEFAULT  '192.168.194.57';
    UPDATE `adapter` SET `adapter_ip` = '192.168.194.57';
END;
但每次我都会出错。我到底做错了什么?我做了测试,如果我跑了

    SELECT *
        FROM information_schema.COLUMNS
            WHERE
                TABLE_SCHEMA = 'table_name'
            AND TABLE_NAME = 'adapter'
            AND COLUMN_NAME = 'adapter_ip'

那么它本身就起作用了。当我把它放到if语句中时,它在第1行给了我一个错误,说语法是错误的。正因为如此,我甚至试着用
然后
替换
开始
,但也没用。你知道是什么引起的吗?感谢所有人的帮助。

我认为您缺少了一个
THEN
,以及
IF
之后的
END IF


另外,这个链接看起来不错:

IF的语法是IF(test-expr,then-expr,else-expr),如下所述:

@john问题是,我尝试过用BEGIN-than和END-IF替换BEGIN-IF,但每次我在第1行遇到错误语法时,我似乎都不明白为什么。