MySQL實際項目中常用的 DDL 模板
? 一、建表模板(帶審計字段 + 索引)
CREATE TABLE `hot_campaign` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`campaign_name` VARCHAR(64) NOT NULL COMMENT '活動名稱',
`site` VARCHAR(32) NOT NULL COMMENT '站點',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '狀態(tài):1啟用 0停用',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',
`created_by` VARCHAR(16) DEFAULT NULL COMMENT '創(chuàng)建人工號',
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
`updated_by` VARCHAR(16) DEFAULT NULL COMMENT '更新人工號',
PRIMARY KEY (`id`),
KEY `idx_site` (`site`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='營銷活動表';? 二、修改表結(jié)構(gòu)(ADD / DROP / CHANGE / MODIFY)
1)新增字段
ALTER TABLE `hot_campaign` ADD COLUMN `last_updated_staff` VARCHAR(16) DEFAULT NULL COMMENT '最后更新人工號';
2)刪除字段
ALTER TABLE `hot_campaign` DROP COLUMN `last_updated_staff`;
3)修改字段類型(MODIFY)
僅修改類型,不改字段名
ALTER TABLE `hot_campaign` MODIFY COLUMN `campaign_name` VARCHAR(128) NOT NULL COMMENT '活動名稱';
4)修改字段名 + 字段類型(CHANGE)
ALTER TABLE `hot_campaign` CHANGE COLUMN `status` `campaign_status` TINYINT NOT NULL DEFAULT 1 COMMENT '活動狀態(tài)';
5)修改字段默認值
ALTER TABLE `hot_campaign` ALTER COLUMN `status` SET DEFAULT 1;
? 三、索引相關(guān)(INDEX / UNIQUE / DROP)
1)新增普通索引
ALTER TABLE `hot_campaign` ADD INDEX `idx_name` (`campaign_name`);
2)新增聯(lián)合索引
ALTER TABLE `hot_campaign` ADD INDEX `idx_site_status` (`site`, `status`);
3)新增唯一索引
ALTER TABLE `hot_campaign` ADD UNIQUE INDEX `uk_site_name` (`site`, `campaign_name`);
4)刪除索引
ALTER TABLE `hot_campaign` DROP INDEX `idx_site_status`;
? 四、外鍵(FOREIGN KEY)
1)新增外鍵約束
ALTER TABLE `coupon`
ADD CONSTRAINT `fk_coupon_campaign`
FOREIGN KEY (`campaign_id`)
REFERENCES `hot_campaign` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
2)刪除外鍵
ALTER TABLE `coupon` DROP FOREIGN KEY `fk_coupon_campaign`;
? 五、表結(jié)構(gòu)變更
1)重命名表
RENAME TABLE `hot_campaign` TO `hot_campaign_v2`;
2)設(shè)置表的字符集
ALTER TABLE `hot_campaign` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
? 六、刪除表(DROP)
DROP TABLE IF EXISTS `hot_campaign`;
到此這篇關(guān)于MySQL實際項目中常用的 DDL 模板的文章就介紹到這了,更多相關(guān)mysql ddl模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql Out of memory (Needed 16777224 bytes)的錯誤解決
至于我改的這幾個值是不是正確的解決方法,目前還不知道。先貼出來2012-07-07
MySQL安裝出現(xiàn)The?configuration?for?MySQL?Server?8.0.28?has
這篇文章主要給大家介紹了MySQL安裝出現(xiàn)The?configuration?for?MySQL?Server?8.0.28?has?failed.?You?can...錯誤的解決辦法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-09-09
MySQL 8.0數(shù)據(jù)字典緩存管理機制解析
MySQL 8.0中的數(shù)據(jù)字典,通過對兩級緩存的逐級訪問,以及精妙的對緩存未命中情況的處理方式,有效的加速了在不同場景下數(shù)據(jù)庫對DD的訪問速度,顯著的提升了數(shù)據(jù)庫訪問元數(shù)據(jù)信息的效率,這篇文章主要介紹了解讀MySQL 8.0數(shù)據(jù)字典緩存管理機制,需要的朋友可以參考下2024-07-07
mysql之?dāng)?shù)字函數(shù)的具體使用
本文主要介紹了mysql之?dāng)?shù)字函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
關(guān)于Mysql update修改多個字段and的語法問題詳析
這篇文章主要給大家介紹了關(guān)于mysql update修改多個字段and的語法問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
MySQL5.7.44-winx64版本W(wǎng)indows Server下載安裝過程
本文詳細介紹了如何下載、安裝和配置MySQL 5.7.44的步驟,包括設(shè)置環(huán)境變量、修改配置文件和密碼,以及如何修改默認端口2025-12-12

