MySQL添加列(如果不存在)

IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = 'email_subscription' AND COLUMN_NAME = 'subscribe_all')

THEN

ALTER TABLE email_subscription

ADD COLUMN subscribe_all TINYINT(1) DEFAULT 1,

ADD COLUMN subscribe_category varchar(512) DEFAULT NULL;

我看了很多例子。但是此查询不起作用,出现以下错误:

错误1064(42000):您的SQL语法有错误;在第1行的’IF NOT EXISTS(SELECT * FROM

INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME

=’)附近,查看与您的MySQL服务器版本相对应的手册以使用正确的语法。

回答:

您可以为查询创建一个过程,

DELIMITER $$

CREATE PROCEDURE Alter_Table()

BEGIN

DECLARE _count INT;

SET _count = ( SELECT COUNT(*)

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = 'email_subscription' AND

COLUMN_NAME = 'subscribe_all');

IF _count = 0 THEN

ALTER TABLE email_subscription

ADD COLUMN subscribe_all TINYINT(1) DEFAULT 1,

ADD COLUMN subscribe_category varchar(512) DEFAULT NULL;

END IF;

END $$

DELIMITER ;

以上是 MySQL添加列(如果不存在) 的全部内容, 来源链接: utcz.com/qa/422906.html

回到顶部