
比如:student表第一条记录(假设paramary key 为id,值为:1)是否有name值。
这样实现的话就比较容易。首选查出这条记录select * from student where id=1
然后判断这条记录是的name属性是否存在值,如果不存在就更新:update student set name='名字' where id=1
判断字段是否存在: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判断表字段或索引是否存在的内容就给大家介绍到这里,希望对大家有所帮助!
你可以从 INFORMATION_SCHEMA.COLUMNS 那里去判断, 某个表里面, 某个字段是否存在.
下面的 例子代码, 是检索 test 数据库下面的 test_main 表都有哪些列。
mysql> SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT-> FROM
-> INFORMATION_SCHEMA.COLUMNS
-> WHERE
-> table_name = 'test_main'
-> AND table_schema = 'test'
-> //
+-------------+-----------+-------------+----------------+
| COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |
+-------------+-----------+-------------+----------------+
| id | int | NO | 0 |
| value | varchar | YES | NULL |
+-------------+-----------+-------------+----------------+
2 rows in set (0.00 sec)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)