33 lines
1.2 KiB
SQL
33 lines
1.2 KiB
SQL
-- ============================================
|
||
-- 删除sys_user表中的phonenumber字段
|
||
-- 注意:删除字段是危险操作,请先备份数据!
|
||
-- ============================================
|
||
|
||
-- 方法1:直接执行(推荐,MySQL 5.7+支持)
|
||
-- 如果字段存在,直接删除
|
||
ALTER TABLE `sys_user` DROP COLUMN `phonenumber`;
|
||
|
||
-- 如果上面的语句不支持,使用下面的方法:
|
||
-- 方法2:先检查再删除(兼容性更好)
|
||
-- SET @exist := (SELECT COUNT(*) FROM information_schema.COLUMNS
|
||
-- WHERE TABLE_SCHEMA = DATABASE()
|
||
-- AND TABLE_NAME = 'sys_user'
|
||
-- AND COLUMN_NAME = 'phonenumber');
|
||
--
|
||
-- SET @sqlstmt := IF(@exist > 0,
|
||
-- 'ALTER TABLE `sys_user` DROP COLUMN `phonenumber`',
|
||
-- 'SELECT ''phonenumber字段不存在'' as result');
|
||
--
|
||
-- PREPARE stmt FROM @sqlstmt;
|
||
-- EXECUTE stmt;
|
||
-- DEALLOCATE PREPARE stmt;
|
||
|
||
-- 验证:查询sys_user表结构,确认phonenumber字段已删除
|
||
-- 如果查询结果为空,说明字段已成功删除
|
||
SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
|
||
FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'sys_user'
|
||
AND COLUMN_NAME = 'phonenumber';
|
||
|