场景引入:
凌晨3点,你正喝着第5杯咖啡☕,突然产品经理发来消息:“用户表要加个‘会员等级’字段,明天上线!” 别慌!学会MySQL增加字段语句,5分钟搞定需求,还能回去补个觉💤
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 [约束条件] [位置];
举个栗子🌰:
-- 在user表末尾添加varchar类型的nickname字段 ALTER TABLE user ADD COLUMN nickname VARCHAR(50); -- 添加NOT NULL的age字段并放在username之后 ALTER TABLE user ADD COLUMN age INT NOT NULL AFTER username;
ALTER TABLE products ADD COLUMN stock INT DEFAULT 0;
👉 适合无位置要求的字段
-- 把price字段插入到product_name后面 ALTER TABLE products ADD COLUMN price DECIMAL(10,2) AFTER product_name;
ALTER TABLE employees ADD COLUMN hire_date DATE NOT NULL DEFAULT '2025-01-01';
⚠️ 注意:必须设置默认值,否则会报错
ALTER TABLE orders ADD COLUMN status TINYINT DEFAULT 1 COMMENT '1-待支付';
ALTER TABLE blog_posts ADD COLUMN view_count INT DEFAULT 0, ADD COLUMN is_top TINYINT(1) DEFAULT 0;
ALTER TABLE payments ADD COLUMN transaction_id VARCHAR(32) COMMENT '第三方支付流水号';
order
、desc
) VARCHAR
TINYINT
/INT
/BIGINT
DECIMAL
,别用FLOAT
! -- 使用存储过程判断 DELIMITER // CREATE PROCEDURE add_column_if_not_exists() BEGIN IF NOT EXISTS( SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='user' AND COLUMN_NAME='avatar' ) THEN ALTER TABLE user ADD COLUMN avatar VARCHAR(255); END IF; END // DELIMITER ;
pt-online-schema-change --alter "ADD COLUMN vip_expire_time DATETIME" D=test,t=users
👉 不锁表完成字段添加
:
掌握ALTER TABLE...ADD COLUMN
就像拥有数据库的魔法棒✨,
(根据2025-07最新MySQL 8.3版本验证通过)
本文由 那拉驰 于2025-07-30发表在【云服务器提供商】,文中图片由(那拉驰)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/485127.html
发表评论