开发者社区> 问答> 正文

MySQL:ALTER TABLE如果列不存在?mysql

我有以下代码:

ALTER TABLE settings ADD COLUMN multi_user TINYINT(1) NOT NULL DEFAULT 1 而且我只想在此列不存在的情况下更改此表。

我正在尝试许多不同的方法,但是没有任何效果:

ALTER TABLE settings ADD COLUMN IF NOT EXISTS multi_user TINYINT(1) NOT NULL DEFAULT 1 附带程序:

DELIMITER $$ CREATE PROCEDURE Alter_Table() BEGIN DECLARE _count INT; SET _count = ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'settings' AND COLUMN_NAME = 'multi_user'); IF _count = 0 THEN ALTER TABLE settings ADD COLUMN multi_user TINYINT(1) NOT NULL DEFAULT 1 END IF; END $$ DELIMITER ; 我在END IF中出错,然后在END中又在1中出错

我怎样才能使它尽可能简单?

展开
收起
保持可爱mmm 2020-05-17 21:14:13 1670 0
1 条回答
写回答
取消 提交回答
  • 在存储过程中使用以下命令:

    IF NOT EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tablename' AND table_schema = 'db_name' AND column_name = 'columnname') THEN

    ALTER TABLE TableName ADD ColumnName int(1) NOT NULL default '0';

    END IF;来源:stack overflow

    2020-05-17 21:24:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像