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行遇到错误语法时,我似乎都不明白为什么。