MySQL-mysql表增加字段时如何检查字段是否已经存在?
要在mysql表中增加字段,如何检查此字段是否已经存在?如果存在则更新这个字段的,如果不存在则新增
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
要在mysql表中增加字段,如何检查此字段是否已经存在?如果存在则更新这个字段的,如果不存在则新增
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
在php程序中用一下方式方式判断:
mysql_connect('localhost', 'root', 'root');
mysql_select_db('demo');
$test = mysql_query('Describe cdb_posts first');
$test = mysql_fetch_array($test);
$test[0]返回的是该字段的名称,比如我要查询first字段,返回的就是first
如果此字段不存在返回的就是NULL,通过这样可以判断一个字段是否存在
可以试试:
SELECT count(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'db_name'
AND TABLE_NAME = 'table_name'
AND COLUMN_NAME = 'column_name'
SELECT IFNULL(column_name, '') INTO @colName
FROM information_schema.columns
WHERE table_name = 'my_table'
AND column_name = 'my_column';
IF @colName = '' THEN
-- 添加字段名 --
ELSE
--修改字段名--
END IF;
先通过检查information_schema数据库,查找对应的字段是否存在;
或者通过desc分析表结构,进行判断字段是否存在;
在决定使用alter命令还是change命令,如下
ALTER [IGNORE] TABLE tbl_name
|ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
|CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
|MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]