mysql 用sql判断表里是不是存在某个字段,不存在加入新字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 用sql判断表里是不是存在某个字段,不存在加入新字段相关的知识,希望对你有一定的参考价值。

参考技术A IF NOT EXISTS(SELECT 1 FROM COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1') THEN
     ALTER TABLE A ADD c1 VARCHAR(1) NOT NULL;
END IF;

追问

这边报错了哦 那个COLUMNS 在我这边是需要 information_schema.COLUMNS
酱紫 错误代码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax ...

追答IF NOT EXISTS(SELECT 1 FROM  information_schema.COLUMNS WHERE TABLE_SCHEMA='test' AND table_name='A' AND COLUMN_NAME='c1') THEN
     ALTER TABLE A ADD c1 VARCHAR(1) NOT NULL;
END IF;

参考技术B 一般我们设计的都是判断某表某记录字段的值是否存在

Mysql判断表字段或索引是不是存在

参考技术A 判断字段是否存在:
DROP
PROCEDURE
IF
EXISTS
schema_change;
DELIMITER
//
CREATE
PROCEDURE
schema_change()
BEGIN
DECLARE
CurrentDatabase
VARCHAR();
SELECT
DATABASE()
INTO
CurrentDatabase;
IF
NOT
EXISTS
(SELECT
*
FROM
information_schema.columns
WHERE
table_schema=CurrentDatabase
AND
table_name
=
'rtc_order'
AND
column_name
=
'IfUpSend')
THEN
ALTER
TABLE
rtc_order
ADD
COLUMN
`IfUpSend`
BIT
NOT
NULL
DEFAULT
COMMENT
'是否上传
是否上传';
END
IF;
END//
DELIMITER
;
CALL
schema_change();
判断索引是否存在:
DROP
PROCEDURE
IF
EXISTS
schema_change;
DELIMITER
//
CREATE
PROCEDURE
schema_change()
BEGIN
DECLARE
CurrentDatabase
VARCHAR();
SELECT
DATABASE()
INTO
CurrentDatabase;
IF
NOT
EXISTS
(SELECT
*
FROM
information_schema.statistics
WHERE
table_schema=CurrentDatabase
AND
table_name
=
'rtc_phototype'
AND
index_name
=
'index_name')
THEN
ALTER
TABLE
`rtc_Phototype`
ADD
INDEX
index_name
(
`imgtype`
);
END
IF;
END//
DELIMITER
;
CALL
schema_change();
从这两段可以看出很多东西,具体可以自己试验一下
关于小编给大家介绍的Mysql判断表字段或索引是否存在的内容就给大家介绍到这里,希望对大家有所帮助!

以上是关于mysql 用sql判断表里是不是存在某个字段,不存在加入新字段的主要内容,如果未能解决你的问题,请参考以下文章

mysql通过sql语句判断某个字段是不是存在

JPA怎么判断一个字段是不是存在?

php如何判断一个字段是不是存在

sql 如何判断表中的某个字段是不是有某个值

Oracle中查询某字段不为空的SQL语句怎么写

Mysql判断表字段或索引是不是存在